python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Pandas DataFrame 筛选

Pandas DataFrame 筛选数据几种方法实现

作者:m0_62172798

本文介绍了四种在DataFrame中筛选数据的方法:根据字段、标签、位置、布尔索引和通过query进行筛选,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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 筛选内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

您可能感兴趣的文章:
阅读全文