熊猫显示按列分组的结果



我正在尝试基本上与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

最新更新