如何在 Pandas 数据框中选择基于行的类别

新手上路,请多包涵

这真的很微不足道,但不敢相信我已经四处游荡了一个小时,仍然能找到答案,所以你在这里:

     df = pd.DataFrame({"cats":["a","b"], "vals":[1,2]})
    df.cats = df.cats.astype("category")
    df

df 看起来像这样

我的问题是如何选择其“猫”列的类别为“a”的行。我知道 df.loc[df.cats == "a"] 会起作用,但它基于元素的相等性。有没有办法根据类别级别进行选择?

原文由 Skywalker326 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 284
1 个回答

这有效:

 df.cats[df.cats=='a']

更新

问题已更新。新的解决方案:

 df[df.cats.cat.categories == ['a']]

原文由 Mike Müller 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题