pandas 如何在使用groupby.sum后只获得具有最大值的观测值?

oalqel3c  于 2022-12-17  发布在  其他
关注(0)|答案(1)|浏览(129)

样本数据:

df = pd.DataFrame({
    'Company': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
    'Model': ['A1', 'A2', 'A1', 'A3', 'A1', 'A2', 'A2', 'A3'],
    'Units_sold': [55, 67, 58, 72, 52, 64, 68, 83]
})

将groupby与sum函数一起使用后

df.groupby(['Company', 'Model'])['Units_sold'].agg('sum')

我得到了以下输出:

Company  Model
A        A1       113
         A2        67
         A3        72
B        A1        52
         A2       132
         A3        83

我只想得到Units_sold为最大值时的观测值。预期输出应为:

Company  Model
A        A1       113
B        A2       132
nr7wwzry

nr7wwzry1#

使用此代码:

df = df.groupby(['Company', 'Model'])['Units_sold'].agg('sum')
df = df.loc[df.groupby('Company').idxmax()]
print(df)

输出将为:

Company  Model
A        A1       113
B        A2       132

相关问题