首页 > 解决方案 > 如何使用 loc on 过滤多个值

问题描述

我想使用 loc 过滤列的多个城市Name

我尝试使用几个列名进行过滤:

popdemo_df.loc[popdemo_df['Name'] == 'Richmond city', ['Name'] == Landsdowne']

我收到以下错误:

解析时错误的、意外的 EOF

标签: pythonpandas

解决方案


为了组合布尔索引,您需要用括号将它们括起来并使用按位运算符&|~,如下所示:

# Selects rows where either condition is met
popdemo_df.loc[(popdemo_df['Name'] == 'Richmond city') | (popdemo_df['Name'] == 'Landsdowne')]

你也可以这样做Series.isin()

popdemo_df.loc[popdemo_df['Name'].isin(['Richmond city', 'Landsdowne'])]

推荐阅读