我正在尝试基本上与Excel中的数据透视表相同的操作,但使用熊猫。以下是我的一些数据:
First_Name Last_Name Country Prize_Money
Roger Federer SUI 88691538
Novak Djokovic SRB 72444493
Rafael Nadal ESP 71421511
Andy Murray GBR 34190085
David Ferrer ESP 24928109
输出将是国家/地区和Prize_Money列的总和:
Country Sum_Prize_Money
ESP 96349620
GBR 34190085
等等。
我用数据创建了一个数据帧对象:
df = pd.DataFrame(Analysis_ATP_data_list, columns=['Ranking',
'First_Name',
'Last_Name',
'Country',
'Prize_Money'])
并希望我能将grouped_by摘要打印到屏幕上。
提前谢谢你,
你可以调用groupby
:
>>> df.groupby("Country")["Prize_Money"].sum()
Country
ESP 96349620
GBR 34190085
SRB 72444493
SUI 88691538
Name: Prize_Money, dtype: int64
如果您想要一个系列作为输出,或者也许
>>> df.groupby("Country", as_index=False)["Prize_Money"].sum()
Country Prize_Money
0 ESP 96349620
1 GBR 34190085
2 SRB 72444493
3 SUI 88691538
如果你想要一个框架。 阅读有关分组的文档可能是个好主意。
更复杂的聚合也是可能的:
>>> df.groupby("Country", as_index=False).agg({"Prize_Money": ["sum", "count"]})
Country Prize_Money
sum count
0 ESP 96349620 2
1 GBR 34190085 1
2 SRB 72444493 1
3 SUI 88691538 1