我刚刚了解了枚举,并认为它们适合我正在编码的东西。但是当我运行这段代码时,出现错误。我是否试图做一些我不应该做的事情或者这是一个错误?
当尝试使用枚举对列进行分组时,出现以下错误:
TypeError: '<' not supported between instances of 'CarBrand' and 'CarBrand'
代码:
import pandas as pd
from enum import Enum
class CarBrand(Enum):
VOLVO = 'Volvo'
BMW = 'BMW'
data = {
'brand': [CarBrand.VOLVO,
CarBrand.VOLVO,
CarBrand.BMW],
'price': [35000,
37000,
45000]
}
df = pd.DataFrame(data)
sum_per_brand = df.groupby('brand').sum('price')
print(sum_per_brand)
这是我期待的打印结果: 品牌价格 宝马45000 沃尔沃72000
groupby 默认排序。如果您使用它,它就会起作用:
sum_per_brand = df.groupby('brand', sort=False).sum('price')
否则使用一些支持排序的数据类型(如其CategoricalDtype)。