如何使用loc on筛选多个值

时间:2019-09-09 17:41:15

标签: python pandas

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

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

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

我收到以下错误:

解析时出现错误的意外EOF

3 个答案:

答案 0 :(得分:0)

使用isin

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

答案 1 :(得分:0)

要合并Boolean indices,您需要将它们用括号括起来并使用按位运算符&|~,如下所示:

# 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'])]

答案 2 :(得分:0)

逗号用于分隔df.loc括号内的行和列。要组合条件,您可以将&用于and,将|用于or,将~使用not

尝试以下方法:

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