pandas 显示按列分组的结果
pandas display results grouped by column
我正在尝试基本上做与 Excel 中的枢轴 table 相同的事情,但使用 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'])
并希望我可以将 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
如果你想要一个框架。阅读 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
我正在尝试基本上做与 Excel 中的枢轴 table 相同的事情,但使用 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'])
并希望我可以将 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
如果你想要一个框架。阅读 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