【发布时间】:2014-11-05 10:53:24
【问题描述】:
我有一个专栏"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) 招聘代码 = 名称['APNT_NA_ACTN'] 临时=名称[(招聘代码== 115)| (招聘代码 == 515)] temp[['NM_EMP_LST','NAT_ACTN_2_3','ACTN_YMD','ORG_LEV2','ORG_LEV3','APNT_NA_ACTN','APNT_YMD','SCD_LV_YMD','SSNO','年份']]
【问题讨论】:
-
另一种选择是
names['APNT_NA_ACTN'].isin([115,515)] -
我喜欢这个概念,但是我收到错误消息:isin() 只需要 2 个参数(给定 3 个) 我输入了这样的代码:names['APNT_NA_ACTN'].isin([115,515)]名字
-
抱歉拼写错误,试试这个:
names['APNT_NA_ACTN'].isin([115,515])] -
是的,这完全有效......
标签: python pandas indexing boolean