pandas 数据框中的枚举,无法在枚举列上进行 groupby 吗?

问题描述 投票:0回答:1

我刚刚了解了枚举,并认为它们适合我正在编码的东西。但是当我运行这段代码时,出现错误。我是否试图做一些我不应该做的事情或者这是一个错误?

当尝试使用枚举对列进行分组时,出现以下错误:

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

python dataframe group-by enums
1个回答
0
投票

groupby 默认排序。如果您使用它,它就会起作用:

sum_per_brand = df.groupby('brand', sort=False).sum('price')

否则使用一些支持排序的数据类型(如其CategoricalDtype)。

© www.soinside.com 2019 - 2024. All rights reserved.