使用带有pandas的布尔索引时出错

时间:2014-09-11 13:07:38

标签: python pandas indexing boolean

我有一个列"APNT_NA_ACTN",它提供了用于雇用员工的编码类型:

115, 515, 100, 786, 101, etc...

我将我的数据集别名为名称,因此names[:3]提供整个集合的三行。

我可以过滤一种类型的代码:

names[names['APNT_NA_ACTN'] == 115]
names

但是,我只希望过滤此列中的115和515。我尝试了以下

temp = names[(names['APNT_NA_ACTN'] == 115) & (names['APNT_NA_ACTN'] == 515)]
temp

我也尝试过:

temp = names.query('[100,515] in 'APNT_NA_ACTN')

有人可以提供帮助吗?

谢谢

所以以下两条建议都适用于我:

1)temp =姓名[姓名[' APNT_NA_ACTN']。isin([115,515])]

2)hiring_code =姓名[' APNT_NA_ACTN'] temp = names [(hiring_code == 115)| (hiring_code == 515)] 温度[[' NM_EMP_LST'' NAT_ACTN_2_3'' ACTN_YMD'' ORG_LEV2'' ORG_LEV3'&# 39; APNT_NA_ACTN'' APNT_YMD'' SCD_LV_YMD'' SSNO''一年']]

2 个答案:

答案 0 :(得分:2)

另一种方法是使用isin

names['APNT_NA_ACTN'].isin([115,515])]

您可以将列表或系列传递给方法

答案 1 :(得分:1)

使用|(逻辑 - 或)代替&(逻辑 - 和):

hiring_code = names['APNT_NA_ACTN']
temp = names[(hiring_code == 115) | (hiring_code == 515)]