在 pandas 中按条件过滤数据框

问题描述 投票:0回答:1

我有一个数据框,其中所有列都具有对象的数据类型。我正在运行 python 语法来按条件过滤行。

语法如下:

condition1=dataframe[dataframe['Earnings']=='<=50K']
condition2= dataframe[dataframe["Degree Status"]=="HS-grad"]
condition3=dataframe[dataframe["Country"]=="United-States"]


df= condition1 & condition2 & condition3

我期望得到按不同条件过滤并用 & 连接的输出。 ”<=50K" is string. However, the output is empty. I can't figure out where my mistake is. Anyone with better suggestion?

pandas filter count
1个回答
0
投票

您似乎正在寻找一种方法来过滤特定列中具有特定值的行。

您可以按照以下方式进行操作

df = dataframe[(dataframe['Earnings'] == '<=50k') 
   & (dataframe["Degree Status"]=="HS-grad") 
   & (dataframe["Country"]=="United-States")]

在您的尝试中,每个条件都返回一个dataframe。然而,您可以在您的方法中做的是返回布尔掩码。你的代码看起来像这样


condition1= dataframe['Earnings']=='<=50K'
condition2= dataframe["Degree Status"]=="HS-grad"
condition3= dataframe["Country"]=="United-States"

df = dataframe[condition1 & condition2 & condition3]
© www.soinside.com 2019 - 2024. All rights reserved.