简单的编程|[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.00 | 6.00 | 6.00 |
公牛 | 22.50 | 9.00 | 6.50 |
... | ... | ... | ... |
sort_values(by,ascending,na_position)主要涉及三个参数:使用sort_values()方法对詹姆斯的得分、篮板、助攻等数据进行排序:
by:指定排序的列名或者列名的列表
ascending:指定是否升序排序,默认升序为True。如果降序排序的话,则为False。
na_position:指定缺失值的位置,值为‘first’或‘last’,默认为 ‘last'。
df1 = df0.sort_values(by=['得分','篮板','助攻'],ascending=[False,False,False])
print(df1)
得到的结果为:
对手 | 得分 | 篮板 | 助攻 |
骑士 | 46.00 | 8.00 | 6.00 |
太阳 | 38.00 | 5.00 | 6.00 |
... | ... | ... | ... |
国王 | 16.00 | 8.00 | 7.00 |
老鹰 | 15.50 | 4.00 | 6.50 |
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量