DataFrame是Pandas中常用的数据结构,即表示矩阵的数据表,包含已排序的列集合,既有行索引又有列索引。使用前需先导入pandas(import pandas as pd)。

一、DataFrame的创建

1、利用包含等长度列表活Numpy数组的字典创建。

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

可以看到创建的DataFrame如下:

2、利用嵌套字典创建

#嵌套字典方式创建,用大括号
qiantao={'Nevada':{2001:2.4,2002:2.9},
        'Ohio':{2000:1.5,2001:1.7,2002:3.6}}
frame2=pd.DataFrame(qiantao)
frame2

3、 用DataFrame中原series创建

#包含series的字典创建
pdata={'Ohio':frame2['Ohio'][:-1],
      'Nevada':frame2['Nevada'][:2]}
pd.DataFrame(pdata)

附:DataFrame构造函数的有效输入类型: 

 二、行列索引及变换

 1、指定列的顺序,按顺序排列

2、如果列不在字典中,显示缺失值

3、重新定义行索引,并按顺序排列

4、检索某一列的两种方式

利用索引方式创建列(如果列不存在,会增加新列)

frame['eastern']=frame.state=='Ohio'
frame

 

用series创建新列,注意创建时值的长度需要匹配,否则补充NaN

val=pd.Series([1.2,-1.5,-1.7],index=[2,4,5])
frame['debt']=val
frame

5、也可以通过位置或者loc选取行,如选取第三行,用位置“2”

6、修改列引用

7、删除某列

8、矩阵转置 

9、添加行列名

frame2.index.name='year'
frame2.columns.name='state'
frame2

10.values属性

 三、索引对象

索引对象用于存储轴标签和其他数据,Series和DataFrame的任意数组或序列标签都可以转换为索引对象。索引对象不可变,不可修改。

我们可以先看一下之前的DataFrame的索引对象

1、存放索引对象a,b,c

obj=pd.Series(range(3),index=['a','b','c'])
index=obj.index

 

2、调用存放好的索引对象labels

labels=pd.Index(np.arange(3))
obj2=pd.Series([1.5,-2.5,0],index=labels)

 3、索引对象可以包含重复标签

参考:Wes McKinney《利用python进行数据分析》

 、

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐