[英]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.