【问题标题】:Pandas Dataframe Indexing questionsPandas 数据框索引问题
【发布时间】: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, 

我尝试了以下方法-

  1. df[df.SearchId%3==0]
  2. df[df.SearchId==3]

每次我要么得到

  1. IndexingError: Unalignable boolean Series key provided

  2. 仅包含相关 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


【解决方案1】:

升级到 Pandas 0.14.1 解决了这个问题!感谢大家,很惊讶这个功能 - df[df.searchid==1] - 在 Pandas 0.13.1 中不起作用

【讨论】:

    猜你喜欢
    • 2019-07-16
    • 1970-01-01
    • 2018-07-31
    • 2020-10-22
    • 2016-09-28
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多