熊猫0.16.1我把数据中的所有列都转换成分类,所以当它被倒入磁盘时,占用的空间要少得多。现在我要过滤数据。==和.isin可以,但在<、<=等操作上失败,“无序的分类只能比较相等与否”。
data[data["MONTH COLUMN"]<=3]如果我在categorical.py中注释掉以下行,一切都很好。是熊猫身上的虫子吗?
if not self.ordered:
if op in ['__lt__', '__gt__','__le__','__ge__']:
raise TypeError("Unordered Categoricals can only compare equality or not")我认为在列上使用分类数据类型是个好主意,该列在大约1‘400’000行中只有12个唯一值。)
发布于 2015-06-17 07:57:18
文档指出:
备注新分类数据不会自动排序。您必须说明传递ordered=True以指示有序的分类。
第一次创建要排序的类别时,只需指定以下内容:
In [1]: import pandas as pd
In [3]: s = pd.Series(["a","b","c","a"]).astype('category', ordered=True)
In [5]: s
Out[5]:
0 a
1 b
2 c
3 a
dtype: category
Categories (3, object): [a < b < c]
In [4]: s > 'a'
Out[4]:
0 False
1 True
2 True
3 False
dtype: boolhttps://stackoverflow.com/questions/30885473
复制相似问题