开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第22天,点击查看活动详情
数据提取
行数据
DataFrame有两个函数可以直接读取行数据:
DataFrame.loc()
DataFrame.iloc()
举例:
import pandas as pd
data=[[45,65,200],[56,45,50],[67,67,67]]
index=['张三','李四','王五']
columns=['数学','语文','英语']
df=pd.DataFrame(data=data,index=index,columns=columns)
print (df)
print('----------')
#提取多行数据
print('loc提取多行数据\n',df.loc[['张三','王五']])
print('----------')
print('loc提取多行数据\n',df.iloc[[0,2]])
结果:
列数据
上述的函数也可以提取列数据:
data=[[45,65,200],[56,45,50],[67,67,67]]
index=['张三','李四','王五']
columns=['数学','语文','英语']
df=pd.DataFrame(data=data,index=index,columns=columns)
print (df)
print('----------')
print('直接提取\n',df[['数学','英语']])#直接提取
print('----------')
#提取多行数据
print('loc提取列数据\n',df.loc[:,['数学','英语']])#含头含尾
print('----------')
print('iloc提取连续多列数据\n',df.iloc[:,1:])#含头不含尾
结果:
提取区域数据
data=[[45,65,200],[56,45,50],[67,67,67]]
index=['张三','李四','王五']
columns=['数学','语文','英语']
df=pd.DataFrame(data=data,index=index,columns=columns)
print(df)
print('----------')
print('李四的数学与英语成绩\n',df.loc['李四',['数学','英语']])
print('----------')
print('张三与王五的语文成绩\n',df.iloc[[0,2],[1]])
结果:
根据条件提取数据
举例:
data=[[75,56,80],[56,45,50],[60,67,67]]
index=['张三','李四','王五']
columns=['数学','语文','英语']
df=pd.DataFrame(data=data,index=index,columns=columns)
print(df)
print('----------')
print('提取数学成绩及格的数据\n',df.loc[df['数学']>=60])
print('----------')
print('提取数学和语文成绩都及格的数据\n',df.loc[(df['数学']>=60)&(df['语文']>=60)])
结果:
小结
实际上这些都只是loc函数和iloc函数的灵活运用,并没有什么大的难度,不过十分好用需要记忆一下。