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

问题描述 投票:2回答:3

这真是微不足道但不能相信我已经闲逛了一个小时仍然可以找到答案,所以你在这里:

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

df looks like this

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

python pandas dataframe categories
3个回答
4
投票

这有效:

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

UPDATE

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

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

1
投票

您可以使用df.cats.cat.categories查询分类列表,将输出打印为

Index(['a', 'b'], dtype='object')

对于这种情况,要选择'a'类别为df.cats.cat.categories['0']的行,您只需使用:

df[df.cats == df.cats.cat.categories[0]]

0
投票
df[df.cats.cat.categories == df.cats.cat.categories[0]]
© www.soinside.com 2019 - 2024. All rights reserved.