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
用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']=valframe
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进行数据分析》
、
来源地址:https://blog.csdn.net/weixin_49249463/article/details/127720074