pandas的数据抽取主要采用.loc和.iloc来取出自己需要的某行和某列的数据

1.介绍.loc和.iloc

df.loc[ ]:主要是通过列名和行名来抽取数据,当只有一个参数时,默认是行名,即抽取这一行的数据。
df.iloc[ ]:主要是通过行索引和列索引来抽取数据,当只有一个参数时,默认为取某一行的数据。

df.iat[ ]:主要是定为dataframe中的某一个数据,如df.iat[2,2],定位的为(3,3)的数据。

2.对数据的抽取

初始化数据:

#pandas之数据抽取
import pandas as pd
pd.set_option('display.unicode.east_asian_width',True)
data=[[120,98,89],[105,89,59],[110,120,100],[95,119]]
index_name=['小红','小兰','小吕','小白']
columns=['数学','物理','英语']
df=pd.DataFrame(data,index=index_name,columns=columns)
print(df)


对行数据的抽取:

#抽取单行数据
print(df.iloc[0])#抽取第一行的数据
#抽取多行
print(df.loc[['小红','小兰']])#抽取小红和小兰的数据
print(df.iloc[[0,1]])#同上
#连续抽取多个学生的考试信息
print(df.loc["小兰":"小白"])#抽取[小红,小兰]两边都包括
print(df.loc[:"小白"])#从开始到小白的信息
print(df.iloc[0:4])#抽取从第1到第4的信息[0,1,2,3]不包括4
print(df.iloc[1::])#抽取第2个到最后一个的信息

2.对数据的抽取

可以直接通过列名抽取,也可以通过.loc和.iloc来抽取

#取列的信息
print(df["数学"])#取一列
print(df[["数学","物理"]])#取多列
#使用iloc与loc获取指定列
print(df.loc[:,["数学","物理"]])#抽取数学和物理两列成绩
print(df.iloc[:,[0,1]])#抽取第一和第二列成绩
print(df.loc[:,"数学":])#抽取数学即以后的列
print(df.iloc[:,:2])#抽取从第一列到第二列的数据[0:3)

3.对行和列数据的抽取

就是组合行列的编码

#抽取指定行和指定列的数据
print(df.loc["小吕","数学"])#抽取小吕的数学成绩,只输出一个数
print(df.loc[["小吕"],["数学"]])#这里会以dataframe的形式输出小吕的数学成绩
print(df.iloc[[1],[2]])#第2行第三列的数据
print(df.iloc[1:,[2]])#第二行到最后一行的第三列数据
print(df.iloc[1:,[0,2]])#抽取第二行到最后一行的第一列和第三列的数据
print(df.iloc[:,2])#获取第三列的所有数据

4.按照大于,小于,等于等条件抽取数据

这里可以不仅可以添加大于小于号,还可以组合逻辑运算符:异或非,根据自己的需求添加。

#按照指定条件抽取数据
print(df.loc[(df["数学"]>105)&(df["物理"]>100)])#输出数学高于100,且物理高于100的同学
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐