Pandas 数据帧query()
方法
原文:https://www.studytonight.com/pandas/pandas-dataframe-query-method
在本教程中,我们将讨论和学习类似于滤镜方法的 Python PandasDataFrame.query()
方法。该方法通过boolean
表达式查询或过滤数据帧。在本教程中,我们将通过单列、比较两列以及使用“AND
”运算符来过滤数据帧。
下面是DataFrame.query()
方法的语法。
句法
DataFrame.query(expr, inplace=False, **kwargs)
因素
expr: 表示作为要评估的查询字符串的字符串。
在原地:代表布尔。它指示查询应该就地修改数据还是返回修改后的副本。
**kwargs :要传递给函数的附加关键字参数。
例:Pandas 的DataFrame.query()
方法
让我们创建一个数据帧,并使用小于和大于表达式按单个列过滤数据帧。参见下面的例子,DataFrame.query()
方法返回包含年龄大于 22、体重大于等于 60 的信息的数据帧。
#importing pandas as pd
import pandas as pd
df=pd.DataFrame({'Name':['Chetan','yashas','yuvraj','Pooja','Sindu','Renuka'],'Age':[19,26,22,24,21,23],'Height':[165,150,168,157,155,170],'Weight':[60,65,70,50,52,55]})
print("------printing the info whose age is above 22-------")
print(df.query('Age<23'))
print("------printing the info whose weight is above 60-----")
print(df.query('Weight>=60'))
-打印年龄在 22 岁以上的信息- 姓名年龄身高体重 0 车坛 19 165 60 2 yuvraj 22 168 70 4 Sindu 21 155 52 -打印体重在 60 岁以上的信息- 姓名年龄身高体重 0 车坛 19 165 60 1 yashas 26 150 65 2 yuvraj 22 168 70
示例:使用DataFrame.query()
方法过滤数据帧
让我们创建一个数据帧,并通过使用DataFrame.query()
方法比较两列来过滤数据帧。参见下面的例子,如果 sci_Marks 列中的值大于数学 _Marks 列中的值,则DataFrame.query()
方法返回数据帧。
#importing pandas as pd
import pandas as pd
df=pd.DataFrame({'Name':['Chetan','yashas','yuvraj','Pooja','Sindu','Renuka'],'sci_Marks':[85,70,75,90,95,70],'Maths_Marks':[82,79,80,89,92,70]})
print("------comparing sci_Marks and Maths_Marks columns -------")
print(df.query('sci_Marks > Maths_Marks'))
-比较 sci_Marks 和数学 _Marks 栏- 名称 sci_Marks 数学 _Marks 0 车坛 85 82 3 Pooja 90 89 4 Sindu 95 92
示例 3:使用DataFrame.query()
方法过滤数据帧
让我们创建一个数据帧,并通过AND
运算符过滤数据帧列。如果两个操作数都为真,并且返回的数据帧由条件匹配的值组成,则DataFrame.query()
方法返回数据帧。
#importing pandas as pd
import pandas as pd
df=pd.DataFrame({'Name':['Chetan','yashas','yuvraj','Pooja','Sindu','Renuka'],'Age':[19,26,22,24,21,23],'Height':[165,150,168,157,155,170],'Weight':[60,65,70,50,52,55]})
print("------printing the info whose Height is above 155 and weight is above 60-------")
print(df.query('Height > 155' and 'Weight > 60'))
-打印身高 155 以上体重 60 以上的信息- 姓名年龄身高体重 1 雅夏 26 150 65 2 yuvraj 22 168 70
示例 4:使用DataFrame.query()
方法过滤数据帧
如果参数inplace=True
,它只是根据给定的条件修改数据帧。它不返回新的数据帧,而是返回None
。见下面的例子。我们可以通过检查数据帧来检查修改后的数据帧。
#importing pandas as pd
import pandas as pd
df=pd.DataFrame({'Name':['Chetan','yashas','yuvraj','Pooja','Sindu','Renuka'],'Age':[19,26,22,24,21,23],'Height':[165,150,168,157,155,170],'Weight':[60,65,70,50,52,55]})
print(df.query('Age==24',inplace=True))
print("-----The modified DataFrame is-----")
print(df)
无 -修改后的数据帧为- 姓名年龄身高体重 3 普加 24 157 50
结论
在本教程中,我们学习了 PandasDataFrame.query()
方法。我们学习了语法、参数,并将该方法应用于数据帧,以理解 DataFrame.query()
方法。