【发布时间】:2014-10-04 12:32:39
【问题描述】:
我必须根据 ID 号选择 df 中的行,ID 号可以是多行共有的,例如 -
SearchId,colA,colB,colC...
1, a, b, c,
1, c, d, e,
1, d, f, w,
3, e, e, s
3, a, f, s,
4, v, c, v,
我尝试了以下方法-
df[df.SearchId%3==0]df[df.SearchId==3]
每次我要么得到
IndexingError: Unalignable boolean Series key provided
仅包含相关 SearchId 的最后一行
如何获取具有特定搜索 ID 的所有行?
谢谢!
【问题讨论】:
-
df.loc[df.SearchId == 3]有效吗? SearchId 是您的索引吗? -
你用的是什么版本的熊猫?如果 SearchId 确实是一列,您的第二个代码 sn-p 应该可以工作
-
你试过
df[df.SearchID=='3']吗? searchID 可以存储为字符串而不是整数 -
@ZJS 如果 SerchId 是混合 dtypes 则可以解释单个匹配但这是一个好点,您能否使用
df.info()的输出编辑您的问题,如果 searchID 是您的索引,那么 @987654327 @ 也可以,但您的数据中可能混合有字符串和整数/浮点数 -
@EdChum - 我试过了,但没有用。我正在使用 Pandas 0.13.1,我可以尝试升级,然后也许它应该可以工作?
标签: python pandas indexing slice