本文测试使用Pandas使用的是Spyder,python3.6版本,已经安装好pandas包。
DataFrame
数据框是用于存储多行和多列的数据集合(可以联想到excel中的表格)。
数据的定义:
from pandas import DataFrame
#定义一个数据框
df=DataFrame(
data={
'age':[18,19,20],
'name':['jack','mick','john']
})
索引默认为数字。
自定义索引
df=DataFrame(
data={
'age':[18,19,20],
'name':['jack','mick','john']},
index=['first','second','third'])
数据访问:
按列访问:df['age']
按行访问:df[1:2]
获取的是第二行(索引1为)
按行列号访问:df.iloc[0:1,0:1]
访问的是第一行第一列的内容
按行索引,列名访问:df.at['first','name']
访问的是行名为first,列名为name的数据,如果没有设置则将’first’换为索引值即可,如果设置列名不可以使用索引值。
表格修改:
修改列名:(获取列名:df.columns)df.columns=['age2','name2']
修改行索引:(获取行索引:df.index) df.index=range(1,4)
数据删除:
根据行索引删除:df.drop(1)
删除行索引为1的数据,其中还有一个参数axis 默认为0
根据列名删除:df.drop("age2",axis=1)
删除列名为age2的数据;或者使用del df['age2']
数据添加:
增加行:df.loc[len(df)]=[22,'jackpi']
(这种方法效率比较低,不应该出现在遍历中),也可以使用这个方法取更改数据(覆盖原来的数据)。
增加列:df['newcol']=[1,2,3,4]
,注意添加的数据要和行数相同。
数据的遍历:
遍历列:
for cName in df:
print('df中的列名:\n',cName)
print('df中的值:\n',df[cName])
结果:
遍历行(1):
for rIndex in df.index:
print('现在是第',rIndex,'行')
print(df.loc[rIndex])
遍历行(2):
for r in df.values:
print(r)
返回结果为数组:
[18 'jack']
[19 'mick']
[20 'john']
遍历行(3):
for index,row in df.iterrows():
print('第',index,'行')
print(row)