美文网首页
03. Pandas数据结构

03. Pandas数据结构

作者: Viterbi | 来源:发表于2022-10-27 08:42 被阅读0次

[toc]

03. Pandas数据结构

  1. Series
  2. DataFrame
  3. 从DataFrame中查询出Series

1. Series

Series是一种类似于一维数组的对象,它由一组数据(不同数据类型)以及一组与之相关的数据标签(即索引)组成。

1.1 仅有数据列表即可产生最简单的Series

import pandas as pd
import numpy as np
s1 = pd.Series([1,'a',5.2,7])

# 左侧为索引,右侧是数据
s1



    0      1
    1      a
    2    5.2
    3      7
    dtype: object




# 获取索引
s1.index

    RangeIndex(start=0, stop=4, step=1)




# 获取数据
s1.values

    array([1, 'a', 5.2, 7], dtype=object)


[x for x in s1.items()]
[(0, 1), (1, 'a'), (2, 5.2), (3, 7)]

1.2 创建一个具有标签索引的Series

s2 = pd.Series([1, 'a', 5.2, 7], index=['d','b','a','c'])


s2

    d      1
    b      a
    a    5.2
    c      7
    dtype: object


s2.index


    Index(['d', 'b', 'a', 'c'], dtype='object')
	

1.3 使用Python字典创建Series

sdata={'Ohio':35000,'Texas':72000,'Oregon':16000,'Utah':5000}

s3=pd.Series(sdata)

s3

    Ohio      35000
    Texas     72000
    Oregon    16000
    Utah       5000
    dtype: int64

1.4 根据标签索引查询数据

类似Python的字典dict

s2


    d      1
    b      a
    a    5.2
    c      7
    dtype: object

# 方括号,里面是一个标签索引
s2['a']

    5.2


type(s2['a'])

    float

# 里面是一个列表
s2[['b','a']]

    b      a
    a    5.2
    dtype: object


type(s2[['b','a']])

    pandas.core.series.Series

2. DataFrame

DataFrame是一个表格型的数据结构

  • 每列可以是不同的值类型(数值、字符串、布尔值等)
  • 既有行索引index,也有列索引columns
  • 可以被看做由Series组成的字典

创建dataframe最常用的方法,见02节读取纯文本文件、excel、mysql数据库

2.1 根据多个字典序列创建dataframe

data={
        'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],
        'year':[2000,2001,2002,2001,2002],
        'pop':[1.5,1.7,3.6,2.4,2.9]
    }
df = pd.DataFrame(data)

df

df.dtypes

    state     object
    year       int64
    pop      float64
    dtype: object

# 列索引
df.columns

    Index(['state', 'year', 'pop'], dtype='object')

# 行索引
df.index


    RangeIndex(start=0, stop=5, step=1)

3. 从DataFrame中查询出Series

  • 如果只查询一行、一列,返回的是pd.Series
  • 如果查询多行、多列,返回的是pd.DataFrame
df

df.values #二维数组
array([['Ohio', 2000, 1.5],
       ['Ohio', 2001, 1.7],
       ['Ohio', 2002, 3.6],
       ['Nevada', 2001, 2.4],
       ['Nevada', 2002, 2.9]], dtype=object)

3.1 查询一列,结果是一个pd.Series


# 方括号,列索引
df['year'] # 等价于 df.year

    0    2000
    1    2001
    2    2002
    3    2001
    4    2002
    Name: year, dtype: int64


type(df['year'])


    pandas.core.series.Series

3.2 查询多列,结果是一个pd.DataFrame


# 里面是一个列表 多个列
df[['year', 'pop']]


type(df[['year', 'pop']])

    pandas.core.frame.DataFrame

3.3 查询一行,结果是一个pd.Series


# 一行 loc=loction位置
df.loc[1]



    state    Ohio
    year     2001
    pop       1.7
    Name: 1, dtype: object



type(df.loc[1])



    pandas.core.series.Series

3.4 查询多行,结果是一个pd.DataFrame

# 像list的切片
df.loc[1:3]

type(df.loc[1:3])




    pandas.core.frame.DataFrame



本文使用 文章同步助手 同步

相关文章

网友评论

      本文标题:03. Pandas数据结构

      本文链接:https://www.haomeiwen.com/subject/vomzzrtx.html