在pandas中按条件过滤数据框[duplicate]

kmb7vmvb  于 2023-09-29  发布在  其他
关注(0)|答案(1)|浏览(88)

此问题已在此处有答案

Efficient way to apply multiple filters to pandas DataFrame or Series(7个回答)
12天前关闭
我有一个dataframe,其中所有列的数据类型都是object。我正在运行一个python语法来按条件过滤行。
下面是语法:

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

df= condition1 & condition2 & condition3

我希望得到的输出是经过不同条件过滤的,并通过&连接。“<=50K”是字符串。但是,输出为空。我不知道我的错误在哪里。谁有更好的建议?

hmae6n7t

hmae6n7t1#

您似乎正在寻找一种方法来筛选在特定列中具有特定值的行。
您可以按如下方式执行此操作

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

在你的尝试中,每个条件都返回一个 * 嵌套框 *。然而,在您的方法中,您可以做的是返回一个布尔掩码。然后,您的代码将类似于

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

df = dataframe[condition1 & condition2 & condition3]

相关问题