[Python话说NBA]pandas分组操作groupby方法与sort_values排序方法

Posted hanyunkaka

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Python话说NBA]pandas分组操作groupby方法与sort_values排序方法相关的知识,希望对你有一定的参考价值。

        在之前的几篇文章中,介绍了pandas分割函数str.split()的用法,并且使用该方法计算了NBA著名球星勒布朗詹姆斯2020-2021赛季常规赛的投篮命中率;介绍了pandas文本数据方法str.startswith()函数,并且使用该方法计算了詹姆斯某个月份的得分、篮板、助攻等数据。很多小伙伴看过之后,给我发私信,想知道詹姆斯在对阵哪只NBA球队时发挥最出色,在对阵哪只NBA球队发挥最不理想。如果要得到詹姆斯对阵某只NBA球队的个人数据,需要用到pandas分组操作groupby方法以及sort_values排序方法。

1、groupby分组方法

        groupby的使用方法较为简单,比如我们要计算詹姆斯2020-2021赛季常规赛对阵所有NBA球队时的得分、篮板、助攻等平均数据,则:

df = pd.read_csv(“lbj-2020-2021-regular.csv”,encoding="gbk")
df0 = df.groupby(['对手'])[['得分','篮板','助攻']].mean().round(2)
print(df0)

        其中,df.groupby(['对手'])[['得分','篮板','助攻']].mean()表示以对手进行分组,分别计算詹姆斯对阵NBA球队时得分、篮板、助攻的平均数据。

        round(2)表示计算得到的平均数据保留两位小数。

        得到的结果为:

对手得分篮板助攻
76人34.006.006.00
公牛22.509.006.50
............

2、sort_values排序方法

        如果我们想知道詹姆斯对阵哪只NBA球队时发挥最出色或最不理想,需要对詹姆斯的得分、篮板、助攻等数据进行排序,此时要用到sort_values排序方法。

sort_values(by,ascending,na_position)主要涉及三个参数:

by:指定排序的列名或者列名的列表

ascending:指定是否升序排序,默认升序为True。如果降序排序的话,则为False。

na_position:指定缺失值的位置,值为‘first’或‘last’,默认为 ‘last'。

        使用sort_values()方法对詹姆斯的得分、篮板、助攻等数据进行排序:

df1 = df0.sort_values(by=['得分','篮板','助攻'],ascending=[False,False,False])
print(df1)

        得到的结果为:

对手得分篮板助攻
骑士 46.008.006.00
太阳38.005.006.00
............
国王16.008.007.00
老鹰15.504.006.50

        由结果可以看到,詹姆斯对阵骑士时发挥最出色,场均得分46分,场均篮板8个,场均助攻6个;对阵老鹰时发挥最不理想,场均得分15.50分,场均篮板4个,场均助攻6.5个。

以上是关于[Python话说NBA]pandas分组操作groupby方法与sort_values排序方法的主要内容,如果未能解决你的问题,请参考以下文章

Pandas分组与聚合

python--pandas分组聚合

在 Python/Pandas 中执行不同操作的多列有条件地聚合分组数据

python pandas groupby分组后的数据怎么用

100天精通Python(数据分析篇)——第64天:Pandas分组groupby函数案例

小白学 Python 数据分析(11):Pandas 数据分组