这是我的原始文本字段
Area Brand Points
USA Nike 86
USA Addidas 85
USA Speedo 84
USA Nike 83
USA Speedo 82
USA Nike 81
Japan Nike 84
Japan Nike 85
Japan Nike 86
Japan Addidas 82
Japan Addidas 80
Japan Addidas 86
Japan Speedo 84
Japan Speedo 82
对于Area列,它只显示唯一值For Brand列,它将显示高频值For Points列,它只显示mean()结果
所以,它应该与下面相同。
Area | ModBrand | AvePoints
USA | NIKE | MEAN NUMBER
Japan | [NIKE, Addidas] | MEAN NUMBER
我知道我可以使用区域的groupby函数和Points的意思
data = data.groupby(['Area']).mean().reset_index()
但对于品牌专栏。你能给我一些提示吗?
谢谢
您可以像这样使用pd.Series.mode
:
df.groupby('Area').agg({'Brand': lambda x: x.mode().values.tolist(), 'Points': 'mean'})
得到:
Brand Points
Area
Japan [Addidas, Nike] 83.625
USA [Nike] 83.500