Python 是否有一种方法可以按排序类别中的项目数过滤数据帧?
基本上,我有一个熊猫数据框,它有一个不方便的有序类别字段,我甚至可能不知道类别值是什么,我只知道它是有序的,类别中有三个值:Python 是否有一种方法可以按排序类别中的项目数过滤数据帧?,python,pandas,dataframe,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[
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]
?通过索引使用和选择:
dfs = dfs[dfs.C1 == dfs.C1.cat.categories[1]]
print (dfs)
C1 C2
1 b 2
2 b 3
6 b 7