我试图基本上像Excel中的数据透视表那样使用pandas。以下是我的一些数据:
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
等等。
我用数据创建了一个DataFrame对象:
df = pd.DataFrame(Analysis_ATP_data_list, columns=['Ranking',
'First_Name',
'Last_Name',
'Country',
'Prize_Money'])
并希望我可以将groups_by摘要打印到屏幕上。
提前谢谢你,
答案 0 :(得分:0)
您可以致电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
如果你想要一个框架。阅读grouping上的文档可能是一个好主意。
也可以进行更复杂的聚合:
>>> 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