繁体   English   中英

Pandas groupby max 不返回某些列的最大值

[英]Pandas groupby max not returning max value for some columns

该程序是:

import numpy as np
import pandas as pd
p = {'item' : ['apple','apple','orange','orange','guns','guns','guns'],'Days' : ['Mon' , 'Tue' , 'Wed' , 'Thu' , 'Fri' , 'Sat' , 'Sun'] ,'sales' : [100 , 80 , 200 , 100 , 5 , 10 , 5]}

df = pd.DataFrame(p)

print(df)

x = df.groupby('item')

print(x.max())

但是 output 是:

熊猫分组输出

最大的guns日发生在Sat ,那么为什么 pandas 显示Sun

max ,当在 groupby 上调用时,计算每列的最大值。 所以10[5, 10, 5]中最大的,而Sun['Fri', 'Sat', 'Sun']中最大的(按字母顺序排列)。

我想你想使用idxmax.loc

filtered = df.loc[df.groupby('item')['sales'].idxmax()]

Output:

     item Days  sales
0   apple  Mon    100
5    guns  Sat     10
2  orange  Wed    200

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM