有没有一种方法可以按订购类别中的项目数过滤熊猫数据框?

时间:2020-09-16 07:28:23

标签: python pandas dataframe

基本上,我有一个带有不方便的有序类别字段的熊猫数据框,我什至可能不知道什么是类别值,我只是知道它是有序的,并且类别中有三个值:

import pandas as pd
dfs = pd.DataFrame({'C1': pd.Categorical(list('abbacabac'), categories=['a', 'b', 'c'], ordered=True), 'C2': [1,2,3,4,5,6,7,8,9]})

例如,我可以通过执行以下操作获得第二类中的所有项目:

df1 = dfs[dfs.C1 == 'b']

但是我什至可能都不知道类别是什么,或者它们可能真的很不方便输入。 考虑到示例中的类别是有序的,是否有一种简单的方法来按顺序获取具有第二个类别的商品,例如

df1 = dfs[dfs.C1.category_order == 1]

1 个答案:

答案 0 :(得分:1)

使用cat.categories并通过建立索引进行选择:

dfs = dfs[dfs.C1 == dfs.C1.cat.categories[1]]
print (dfs)
  C1  C2
1  b   2
2  b   3
6  b   7