这是我的原始文本字段
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
对于“面积”列,它仅显示唯一值 对于“品牌”列,它将显示高频值 对于“积分”列,它仅显示mean()结果
所以,它应该和下面的一样。
Area | ModBrand | AvePoints
USA | NIKE | MEAN NUMBER
Japan | [NIKE, Addidas] | MEAN NUMBER
我知道我可以对区域使用groupby函数,对点使用均值
data = data.groupby(['Area']).mean().reset_index()
但对于“品牌”列。你可以给我一些提示吗?
谢谢
答案 0 :(得分:0)
您可以像这样使用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