Pandas DataFrame 筛选数据几种方法实现
DataFrame筛选数据的方法包括:根据字段、标签、位置、布尔索引、通过query进行筛选。
1、根据字段筛选数据
根据字段筛选简单理解为根据每一列继续筛选,将想要的列拿出再对齐进行操作,可以提高效率。
可以通过df.字段名、df[字段名]或df[['字段名']](此种方法可以拿取多列数据,并形成一个新的dataframe)
直接看代码
import pandas as pd
import numpy as np
df=pd.DataFrame(np.random.randint(0,150,size=(150,3)),
columns=['math','python','english']
)
print(df)
print(df.python)
print(df["math"])
print(df[['math']])
print(df[['math','python']])




2、根据标签筛选数据
标签可以理解为索引(每一行),标签除了默认的数字之外,在定义时可以根据需求进行定义。
通过loc进行操作
import pandas as pd
import numpy as np
df=pd.DataFrame(np.random.randint(0,100,size=(10,3)),
index=list('ABCDEFGHIG'),
columns=['math','python','english']
)
print(df.loc['A'])#筛选出标签A这一行
print(df.loc[['A']])#将A这一行返回成一个新的DataFrame
print(df.loc[['A','B']])#将AB两行返回成DataFrame
print(df.loc[['A','B'],['math','python']])#左边为标签,右边为字段,即将AB两行的math、python两列返回
print(df.loc['A':'F',['math','python']])#采用分区方法,将A到F行的此两列返回
print(df.loc[:,['math','python']])#单独的‘:'表示所有行
print(df.loc['B'::2])#从B开始隔一个取一个

3、根据布尔索引筛选数据
通过比较运算进行创造布尔条件,通过其值进行筛选。值得注意的是其逻辑运算为(&、|、~)
import pandas as pd
import numpy as np
df=pd.DataFrame(np.random.randint(0,151,size=(2000,3)),
columns=['math','python','english']
)
cond1=df.python>99#其返回值为一个bool类型的series,需要变量进行接受
print(cond1)
df1=df[cond1]
print(df1[['python']])#将cond1作为筛选条件,这里为了只看其中一列,用一个新的dataframe

print(df[df>50])#对df中的所有元素进行判定,其false项会换成NaN

print(df[df.python.isin([108])])#使用isin方法查找python分数为108,中括号里也可以为数组

4、通过query筛选数据
query()方法允许使用SQL表达式进行筛选数据
df2=df.query('python>135 and math>120 and english > 100')
print(df2)
到此这篇关于Pandas DataFrame 筛选数据几种方法实现的文章就介绍到这了,更多相关Pandas DataFrame 筛选内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
解决Pytorch 训练与测试时爆显存(out of memory)的问题
今天小编就为大家分享一篇解决Pytorch 训练与测试时爆显存(out of memory)的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-08-08
python测试攻略pytest.main()隐藏利器实例探究
在Pytest测试框架中,pytest.main()是一个重要的功能,用于启动测试执行,它允许以不同方式运行测试,传递参数和配置选项,本文将深入探讨pytest.main()的核心功能,提供丰富的示例代码和更全面的内容,2024-01-01


最新评论