简介
DataFrame是Python中Pandas库中的一种数据结构,它类似excel,是一种二维表。
或许说它可能有点像matlab的矩阵,但是matlab的矩阵只能放数值型值(当然matlab也可以用cell存放多类型数据),DataFrame的单元格可以存放数值、字符串等,这和excel表很像。
同时DataFrame可以设置列名columns与行名index,可以通过像matlab一样通过位置获取数据也可以通过列名和行名定位。
创建DataFrame
直接创建
随机创建一个4*4的DataFrame:
df1=pd.DataFrame(np.random.randn(4,4),index=list('ABCD'),columns=list('ABCD'))
其中第一个参数是存放在DataFrame里的数据,第二个参数index就是之前说的行名(或者应该叫索引?),第三个参数columns是之前说的列名。
后两个参数可以使用list输入,但是注意,这个list的长度要和DataFrame的大小匹配,不然会报错。当然,这两个参数是可选的,你可以选择不设置。
而且发现,这两个list是可以一样的,但是每行每列的名字在index或columns里要是唯一的。
使用python自己的shell展示创建的结果是这样的:
当然,如果你的数据量贼小,也可以自己输入创建,类似这样:
df2=pd.DataFrame([[1,2,3,4],[2,3,4,5],
[3,4,5,6],[4,5,6,7]],
index=list('ABCD'),columns=list('ABCD'))
使用字典创建
仍然是使用DataFrame这个函数,但是字典的每个key的value代表一列,而key是这一列的列名。比如这样:
dic1={'name':['小明','小红','狗蛋','铁柱'],'age':[17,20,5,40],'gender':['男','女','女','男']}
df3=pd.DataFrame(dic1)
查看与筛选数据
python没有matlab的工作区直接查看变量与内容,这大概是python科学计算的一个缺点。所以需要格外的代码来查看,最基本的直接写变量名与print就不说了。
查看列的数据类型
使用dtypes方法可以查看各列的数据类型,比如说刚刚的df3:
df3.dtypes
输出结果:
查看DataFrame的头尾
使用head可以查看前几行的数据,默认的是前5行,不过也可以自己设置。
使用tail可以查看后几行的数据,默认也是5行,参数可以自己设置。
比如随意设置一个6*6的数据,只看前5行:
df4=pd.DataFrame(np.random.randn(6,6))
df4.head()
查看行名与列名
使用index查看行名,columns查看列名:
df1.index
df3.columns
查看数据值
使用values可以查看DataFrame里的数据值,返回的是一个数组。比如说查看所有的数据值:
df3.values
查看某一列所有的数据值:
df3['name'].values
使用loc或者iloc查看数据值(但是只能根据行来查看)。区别是loc是根据行名,iloc是根据数字索引(也就是行号):
df1.loc['A']
df1.iloc[0]
按列进行索引查看数据还能直接使用列名,但这种方法对行索引不适用:
df3['name']
查看行列数
使用shape查看行列数,参数为0表示查看行数,参数为1表示查看列数。