Fork me on GitHub

NBA之旅1-透视表参数详解

数据是从网上获取的,关于一份NBA的数据

1
2
3
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
1
path = r"D:\Python\datalearning\利用Python进行数据分析\NBA_Data.csv"

读取数据

1
2
3
4
5
6
7
data = pd.read_csv(path, encoding='utf-8', names=[
'球员姓名','赛季','胜负','对手名称','对手总得分','己方总得分',
'己方名称','首发','上场时间','投篮命中率','投篮命中数','投篮出手数',
'三分命中率','三分命中数','三分出手数','罚球命中率','罚球命中数','罚球次数',
'总篮板数','前场篮板数','后场篮板数','助攻数','抢断数','盖帽数','失误数','犯规数','得分'
])
df = pd.DataFrame(data)

查看数据

  • head():前5行

  • tail():后5行

1
df.head()
球员姓名 赛季 胜负 对手名称 对手总得分 己方总得分 己方名称 首发 上场时间 投篮命中率 ... 罚球次数 总篮板数 前场篮板数 后场篮板数 助攻数 抢断数 盖帽数 失误数 犯规数 得分
0 勒布朗-詹姆斯 18-19 黄蜂 115 129 湖人 1 32 57.9 ... 2 3 0 3 9 0 0 6 1 27
1 勒布朗-詹姆斯 18-19 奇才 106 124 湖人 1 34 55.0 ... 2 7 0 7 14 1 0 3 1 23
2 勒布朗-詹姆斯 18-19 国王 106 111 湖人 1 35 40.9 ... 9 11 2 9 11 2 1 4 1 29
3 勒布朗-詹姆斯 18-19 篮网 111 106 湖人 1 37 32.0 ... 12 9 3 6 14 1 1 8 3 25
4 勒布朗-詹姆斯 18-19 尼克斯 124 123 湖人 1 35 42.3 ... 13 6 2 4 8 0 1 2 2 33

5 rows × 27 columns

修改列属性名称

  • 将对手名称改成对手:对手名称--->对手球员姓名--->姓名

  • 同时修改多个属性,用字典的形式

1
df.rename(columns={"对手名称": "对手", "球员姓名": "姓名"})

查看某个属性的种类

查看和每个对手分别比赛了多少场次,降序排列

姓名 赛季 胜负 对手 对手总得分 己方总得分 己方名称 首发 上场时间 投篮命中率 ... 罚球次数 总篮板数 前场篮板数 后场篮板数 助攻数 抢断数 盖帽数 失误数 犯规数 得分
0 勒布朗-詹姆斯 18-19 黄蜂 115 129 湖人 1 32 57.9 ... 2 3 0 3 9 0 0 6 1 27
1 勒布朗-詹姆斯 18-19 奇才 106 124 湖人 1 34 55.0 ... 2 7 0 7 14 1 0 3 1 23
2 勒布朗-詹姆斯 18-19 国王 106 111 湖人 1 35 40.9 ... 9 11 2 9 11 2 1 4 1 29
3 勒布朗-詹姆斯 18-19 篮网 111 106 湖人 1 37 32.0 ... 12 9 3 6 14 1 1 8 3 25
4 勒布朗-詹姆斯 18-19 尼克斯 124 123 湖人 1 35 42.3 ... 13 6 2 4 8 0 1 2 2 33
5 勒布朗-詹姆斯 18-19 猛龙 111 98 湖人 1 32 52.2 ... 7 4 0 4 6 1 0 4 2 29
6 勒布朗-詹姆斯 18-19 公牛 107 123 湖人 1 33 65.2 ... 5 10 1 9 4 2 0 5 2 36
7 勒布朗-詹姆斯 18-19 凯尔特 120 107 湖人 1 28 56.5 ... 7 10 2 8 12 0 0 3 0 30
8 勒布朗-詹姆斯 18-19 掘金 115 99 湖人 1 31 59.1 ... 8 7 0 7 7 1 1 4 4 31
9 勒布朗-詹姆斯 18-19 快船 113 105 湖人 1 42 50.0 ... 12 8 0 8 6 1 1 2 3 27
10 勒布朗-詹姆斯 18-19 太阳 118 109 湖人 1 41 47.6 ... 7 9 0 9 16 0 0 3 2 27
11 勒布朗-詹姆斯 18-19 雄鹿 131 120 湖人 1 39 52.6 ... 10 7 2 5 10 1 0 3 2 31
12 勒布朗-詹姆斯 18-19 鹈鹕 119 125 湖人 1 37 54.2 ... 8 6 1 5 10 2 1 2 2 33
13 勒布朗-詹姆斯 18-19 灰熊 110 105 湖人 1 40 34.8 ... 10 12 3 9 11 3 0 5 3 24
14 勒布朗-詹姆斯 18-19 鹈鹕 128 115 湖人 1 39 64.7 ... 6 7 0 7 12 4 1 4 0 27
15 勒布朗-詹姆斯 18-19 火箭 106 111 湖人 1 40 47.8 ... 10 12 4 8 6 1 1 4 1 29
16 勒布朗-詹姆斯 18-19 老鹰 117 113 湖人 1 43 40.0 ... 11 11 2 9 16 3 1 2 3 28
17 勒布朗-詹姆斯 18-19 凯尔特 128 129 湖人 1 38 52.4 ... 5 12 2 10 12 3 0 3 4 28
18 勒布朗-詹姆斯 18-19 步行者 136 94 湖人 1 30 58.3 ... 3 7 0 7 9 1 0 6 1 18
19 勒布朗-詹姆斯 18-19 快船 120 123 湖人 1 40 40.9 ... 7 14 1 13 9 1 0 4 0 24
20 勒布朗-詹姆斯 18-19 勇士 101 127 湖人 1 21 54.5 ... 8 13 2 11 5 1 0 2 1 17
21 勒布朗-詹姆斯 18-19 灰熊 107 99 湖人 1 36 57.1 ... 4 14 1 13 7 1 1 4 0 22
1
2
df['对手名称'].value_counts()   # 默认降序
# df['对手名称'].value_counts(ascending=True) 改成升序
公牛     56
雄鹿     56
步行者    56
活塞     55
老鹰     55
魔术     55
篮网     54
猛龙     53
尼克斯    53
凯尔特    51
奇才     50
76人    44
热火     38
黄蜂     36
山猫     35
太阳     32
马刺     31
森林狼    31
掘金     31
灰熊     31
开拓者    30
火箭     30
湖人     30
快船     30
爵士     30
国王     28
勇士     28
小牛     26
雷霆     19
骑士     14
鹈鹕     13
超音速     8
独行侠     4
Name: 对手名称, dtype: int64

查看得分的最高和最低分

1
2
print(max(df['得分']))
print(min(df['得分']))
61
3

查看胜负场数总和

1
2
print((df["胜负"]=='胜').sum())
print((df["胜负"]=='负').sum())
787
406

得分柱状图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 解决中文乱码问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['font.family']='sans-serif'
plt.rcParams['axes.unicode_minus']=False

# 画布大小,防止横纵坐标重叠
plt.figure(figsize = (12, 7))

# 图标设置
plt.title("得分次数统计图")
# 横坐标标签
plt.xlabel('得分')
# 纵坐标标签
plt.ylabel('得分次数')

score = df['得分'].value_counts()
score.plot(kind='bar', rot=0)

# 图片保存
plt.savefig('./score.png', bbox_inches='tight')
plt.show()
plt.close()

png

对手得分前5名

通过sort_values()函数进行排序,ascending=False指定为降序

1
df.sort_values(by='对手总得分', ascending=False).head(3)
球员姓名 赛季 胜负 对手名称 对手总得分 己方总得分 己方名称 首发 上场时间 投篮命中率 ... 罚球次数 总篮板数 前场篮板数 后场篮板数 助攻数 抢断数 盖帽数 失误数 犯规数 得分
89 勒布朗-詹姆斯 17-18 雷霆 148 124 骑士 1 38 47.1 ... 4 3 0 3 7 0 1 2 2 18
51 勒布朗-詹姆斯 18-19 马刺 143 142 湖人 1 43 44.0 ... 11 8 2 6 14 1 1 5 2 32
81 勒布朗-詹姆斯 17-18 森林狼 138 140 骑士 1 48 72.7 ... 2 10 1 9 15 1 1 5 3 37

3 rows × 27 columns

查看数据的多种信息

  • 总数
  • 中位数
  • 平均值
  • 最小值
1
df.describe()

limit_output extension: Maximum message size of 10000 exceeded with 34500 characters

交换两个属性的位置

数据显示的是在同一个赛季的情况下,不同的对手的数据情况

三分出手数 三分命中数 三分命中率 上场时间 前场篮板数 助攻数 后场篮板数 失误数 对手总得分 己方总得分 ... 投篮出手数 投篮命中数 投篮命中率 抢断数 犯规数 盖帽数 罚球命中数 罚球命中率 罚球次数 首发
对手名称 赛季
76人 03-04 3.333333 2.000000 40.466667 40.666667 1.000000 6.666667 3.000000 4.666667 85.000000 83.333333 ... 18.666667 9.666667 49.800000 1.666667 1.333333 1.000000 3.333333 68.533333 5.333333 1.0
04-05 3.666667 0.666667 11.100000 44.666667 1.666667 7.333333 7.666667 5.000000 98.000000 89.333333 ... 23.666667 9.000000 37.366667 4.333333 0.666667 0.000000 10.333333 88.866667 11.666667 1.0
05-06 5.750000 1.750000 23.400000 43.000000 2.000000 7.000000 4.250000 4.500000 106.750000 112.250000 ... 21.750000 12.500000 57.600000 2.250000 2.000000 0.750000 7.500000 76.950000 9.750000 1.0
06-07 4.666667 1.333333 20.833333 43.333333 1.000000 7.333333 5.333333 4.000000 101.666667 107.000000 ... 20.333333 10.333333 50.166667 0.333333 3.000000 0.333333 5.333333 58.566667 9.000000 1.0
07-08 1.666667 0.666667 33.333333 42.000000 1.333333 6.666667 5.000000 3.000000 90.000000 89.333333 ... 18.000000 10.333333 57.433333 1.666667 2.666667 1.000000 3.333333 83.333333 5.333333 1.0
08-09 4.666667 1.333333 27.766667 37.666667 1.666667 7.333333 2.666667 0.666667 85.666667 97.000000 ... 20.000000 9.000000 45.166667 0.333333 3.333333 2.000000 8.666667 81.933333 10.666667 1.0
09-10 6.666667 2.666667 43.333333 40.333333 0.333333 8.666667 6.000000 3.000000 95.666667 101.666667 ... 21.333333 10.666667 50.033333 1.333333 2.333333 1.333333 6.333333 66.166667 9.666667 1.0
10-11 3.666667 0.666667 15.000000 40.000000 1.000000 5.000000 7.000000 5.000000 92.000000 102.333333 ... 14.666667 7.000000 46.566667 2.333333 1.666667 1.000000 8.000000 93.933333 8.666667 1.0
11-12 1.250000 0.250000 12.500000 37.250000 1.500000 6.250000 7.000000 2.750000 85.500000 98.750000 ... 19.500000 11.750000 60.150000 2.250000 0.750000 2.000000 5.500000 72.350000 7.750000 1.0
12-13 3.250000 1.250000 41.675000 33.250000 1.500000 7.250000 6.250000 2.500000 91.000000 105.000000 ... 16.250000 9.250000 57.450000 1.500000 1.250000 0.750000 4.000000 73.325000 5.250000 1.0
13-14 4.000000 2.000000 28.550000 37.000000 0.500000 11.500000 5.500000 3.500000 100.000000 105.500000 ... 15.000000 8.000000 53.350000 1.000000 3.000000 0.500000 5.000000 81.250000 6.000000 1.0
14-15 4.000000 1.000000 25.000000 37.000000 1.000000 8.500000 6.000000 5.500000 85.000000 92.000000 ... 20.500000 7.000000 34.300000 1.000000 1.000000 0.500000 4.000000 66.650000 6.000000 1.0
15-16 4.000000 1.500000 30.000000 32.750000 0.000000 9.250000 6.250000 2.250000 93.250000 104.500000 ... 20.000000 11.500000 57.225000 2.750000 1.250000 0.750000 3.750000 77.100000 5.000000 1.0
16-17 5.333333 1.666667 29.300000 36.000000 1.666667 11.000000 7.333333 4.000000 104.666667 112.000000 ... 21.333333 10.666667 50.033333 1.000000 1.000000 0.333333 5.333333 71.166667 7.333333 1.0
公牛 03-04 3.500000 0.750000 22.925000 37.250000 1.250000 6.250000 3.000000 4.000000 88.250000 91.750000 ... 19.750000 7.500000 37.925000 1.750000 1.250000 2.500000 5.500000 71.875000 7.500000 1.0
04-05 2.250000 0.750000 43.750000 41.750000 1.500000 7.750000 3.750000 3.000000 95.000000 92.750000 ... 19.250000 8.500000 45.200000 2.750000 2.250000 0.750000 6.750000 65.550000 10.500000 1.0
1
pd.pivot_table(df, index=['赛季', '对手名称'])
<

limit_output extension: Maximum message size of 10000 exceeded with 34292 characters

数据框中选取部分values

三分出手数 三分命中数 三分命中率 上场时间 前场篮板数 助攻数 后场篮板数 失误数 对手总得分 己方总得分 ... 投篮出手数 投篮命中数 投篮命中率 抢断数 犯规数 盖帽数 罚球命中数 罚球命中率 罚球次数 首发
赛季 对手名称
03-04 76人 3.333333 2.000000 40.466667 40.666667 1.000000 6.666667 3.000000 4.666667 85.000000 83.333333 ... 18.666667 9.666667 49.800000 1.666667 1.333333 1.000000 3.333333 68.533333 5.333333 1.0
公牛 3.500000 0.750000 22.925000 37.250000 1.250000 6.250000 3.000000 4.000000 88.250000 91.750000 ... 19.750000 7.500000 37.925000 1.750000 1.250000 2.500000 5.500000 71.875000 7.500000 1.0
凯尔特 4.500000 1.000000 21.675000 41.500000 0.500000 4.000000 3.750000 3.000000 98.000000 89.750000 ... 19.000000 7.250000 36.950000 1.250000 2.250000 0.250000 7.000000 73.400000 8.750000 1.0
勇士 5.000000 2.500000 50.000000 44.500000 2.500000 8.000000 4.500000 2.500000 111.000000 101.000000 ... 24.500000 10.000000 40.500000 2.000000 0.500000 0.500000 9.000000 74.100000 12.000000 1.0
国王 2.000000 0.000000 0.000000 42.000000 2.000000 9.000000 4.000000 2.000000 106.000000 92.000000 ... 20.000000 12.000000 60.000000 4.000000 3.000000 0.000000 1.000000 33.300000 3.000000 1.0
太阳 5.000000 1.500000 30.000000 41.500000 1.500000 7.000000 5.500000 6.000000 99.000000 86.000000 ... 19.000000 8.000000 42.600000 2.000000 0.500000 0.500000 5.500000 67.450000 8.000000 1.0
奇才 1.500000 0.750000 25.000000 40.500000 2.500000 6.750000 2.750000 3.750000 102.500000 99.500000 ... 20.000000 9.500000 46.775000 1.750000 2.250000 1.250000 4.500000 70.450000 6.250000 1.0
小牛 1.000000 0.000000 0.000000 38.000000 1.500000 7.500000 3.000000 4.000000 120.000000 103.500000 ... 17.000000 9.500000 54.550000 2.000000 2.000000 0.500000 3.000000 75.000000 4.000000 1.0
尼克斯 2.000000 0.750000 25.000000 38.500000 0.500000 5.500000 3.250000 3.000000 88.000000 98.250000 ... 16.500000 7.000000 43.925000 1.500000 1.000000 0.500000 2.750000 66.675000 3.750000 1.0
开拓者 1.500000 0.000000 0.000000 39.000000 1.500000 7.500000 5.500000 3.500000 89.000000 85.500000 ... 17.500000 9.000000 45.100000 2.500000 2.000000 0.000000 2.000000 100.000000 2.000000 1.0
快船 2.500000 0.000000 0.000000 36.500000 3.000000 8.000000 3.500000 4.000000 92.500000 91.500000 ... 14.500000 4.000000 26.450000 1.000000 2.000000 0.500000 1.000000 25.000000 2.000000 1.0
掘金 2.500000 1.000000 33.350000 36.500000 2.500000 6.000000 6.000000 2.000000 104.000000 96.000000 ... 15.000000 4.500000 29.450000 2.000000 2.500000 1.500000 3.000000 85.700000 4.000000 1.0
森林狼 2.500000 0.500000 16.650000 40.000000 1.500000 3.500000 7.500000 2.000000 100.000000 87.500000 ... 18.500000 7.000000 37.700000 0.500000 3.000000 0.000000 2.000000 62.500000 3.500000 1.0
步行者 2.750000 0.250000 12.500000 42.500000 0.750000 4.250000 4.750000 5.250000 95.500000 92.750000 ... 19.000000 9.750000 51.600000 1.500000 2.000000 1.000000 4.750000 72.475000 6.250000 1.0
活塞 2.500000 0.500000 14.575000 38.250000 1.000000 6.250000 3.000000 3.250000 89.000000 86.000000 ... 16.250000 5.000000 29.700000 0.750000 3.000000 0.750000 3.500000 80.425000 4.500000 1.0
湖人 3.500000 2.000000 50.000000 40.000000 0.500000 5.500000 4.000000 3.000000 100.000000 92.500000 ... 23.000000 9.000000 38.100000 0.500000 1.500000 0.500000 4.000000 80.000000 5.000000 1.0
火箭 3.000000 1.000000 25.000000 37.500000
1
df.head(3)
球员姓名 赛季 胜负 对手名称 对手总得分 己方总得分 己方名称 首发 上场时间 投篮命中率 ... 罚球次数 总篮板数 前场篮板数 后场篮板数 助攻数 抢断数 盖帽数 失误数 犯规数 得分
0 勒布朗-詹姆斯 18-19 黄蜂 115 129 湖人 1 32 57.9 ... 2 3 0 3 9 0 0 6 1 27
1 勒布朗-詹姆斯 18-19 奇才 106 124 湖人 1 34 55.0 ... 2 7 0 7 14 1 0 3 1 23
2 勒布朗-詹姆斯 18-19 国王 106 111 湖人 1 35 40.9 ... 9 11 2 9 11 2 1 4 1 29

3 rows × 27 columns

生成透视表,使用部分数据

查看詹姆斯在不同的赛季下的胜负情况,以及总篮板数、助攻数、抢断数、犯规数四项数据:

1
2
3
4
pd.pivot_table(df
,index=['赛季', '胜负']
,values=['总篮板数','助攻数', '抢断数', '犯规数']
)
助攻数 总篮板数 抢断数 犯规数
赛季 胜负
03-04 6.121212 5.787879 1.818182 1.848485
5.717391 5.239130 1.521739 1.913043
04-05 7.560976 7.731707 2.487805 1.902439
6.846154 6.948718 1.923077 1.743590
05-06 6.957447 7.276596 1.829787 2.297872
6.062500 6.687500 1.156250 2.281250
06-07 6.234043 6.872340 1.723404 2.148936
5.709677 6.548387 1.419355 2.258065
07-08 7.755556 8.644444 2.111111 2.200000
6.333333 6.766667 1.433333 2.200000
08-09 7.348485 7.696970 1.712121 1.636364
6.800000 7.000000 1.600000 2.066667
09-10 8.750000 7.383333 1.616667 1.483333
7.875000 6.937500 1.750000 1.875000
10-11 7.070175 7.368421 1.666667 2.017544
6.863636 7.727273 1.318182 2.181818
11-12 6.422222 7.888889 1.955556 1.622222
5.764706 8.058824 1.588235 1.352941
12-13 7.573770 8.049180 1.606557 1.295082
5.933333 7.933333 2.066667 2.066667
13-14 6.365385 7.038462 1.692308 1.423077
6.280000 6.680000 1.320000 2.080000
14-15 8.000000 6.340000 1.700000 1.860000
5.842105 5.210526 1.263158 2.210526
15-16 7.392857 7.267857 1.517857 1.839286
5.000000 7.900000 0.950000 2.000000
16-17 9.372549 8.431373 1.196078 1.745098
7.304348 9.086957 1.347826 1.956522
17-18 10.062500 9.104167 1.458333 1.666667
7.533333 7.500000 1.333333 1.766667
18-19 8.071429 8.892857 1.428571 1.535714
8.423077 7.923077 1.230769 1.846154

Aggfunc

参数详解

  • 参数的含义:设置我们对数据聚合时使用的函数操作

  • 不同的属性可以使用不同的参数,用字典形式

  • 默认情况:求均值mean

  • 多个参数使用列表形式,可以使用numpy的函数形式,例如:np.sum、np.mean

1
2
3
4
5
pd.pivot_table(df
,index=['赛季', '胜负']
,values=['总篮板数','助攻数', '抢断数', '犯规数']
,aggfunc=[np.mean, np.sum, np.median]
)

limit_output extension: Maximum message size of 10000 exceeded with 10892 characters

字典形式

mean sum median
助攻数 总篮板数 抢断数 犯规数 助攻数 总篮板数 抢断数 犯规数 助攻数 总篮板数 抢断数 犯规数
赛季 胜负
03-04 6.121212 5.787879 1.818182 1.848485 202 191 60 61 5.0 6.0 2.0 2.0
5.717391 5.239130 1.521739 1.913043 263 241 70 88 6.0 5.0 1.0 2.0
04-05 7.560976 7.731707 2.487805 1.902439 310 317 102 78 7.0 8.0 2.0 2.0
6.846154 6.948718 1.923077 1.743590 267 271 75 68 7.0 7.0 2.0 2.0
05-06 6.957447 7.276596 1.829787 2.297872 327 342 86 108 7.0 7.0 2.0 2.0
6.062500 6.687500 1.156250 2.281250 194 214 37 73 6.0 7.0 1.0 2.0
06-07 6.234043 6.872340 1.723404 2.148936 293 323 81 101 6.0 7.0 2.0 2.0
5.709677 6.548387 1.419355 2.258065 177 203 44 70 6.0 6.0 1.0 2.0
07-08 7.755556 8.644444 2.111111 2.200000 349 389 95 99 8.0 8.0 2.0 2.0
6.333333 6.766667 1.433333 2.200000 190 203 43 66 6.0 6.0 1.5 2.0
08-09 7.348485 7.696970 1.712121 1.636364 485 508 113 108 7.0 7.0 1.5 1.0
6.800000 7.000000 1.600000 2.066667 102 105 24 31 6.0 7.0 1.0 1.0
09-10 8.750000 7.383333 1.616667 1.483333 525 443 97 89 9.0 7.0 1.5 1.5
7.875000 6.937500 1.750000 1.875000 126 111 28 30 7.0 6.5 2.0 2.0
10-11 7.070175 7.368421 1.666667 2.017544 403 420 95 115 7.0 7.0 1.0 2.0
6.863636 7.727273 1.318182 2.181818 151 170 29 48 6.5 8.0 1.0 2.0
11-12 6.422222 7.888889 1.955556 1.622222 289 355 88 73 6.0 8.0 2.0 2.0
5.764706 8.058824 1.588235 1.352941 98 137 27 23 6.0 7.0 2.0 1.0
12-13 7.573770 8.049180 1.606557 1.295082 462 491 98 79 7.0 8.0 2.0 1.0
5.933333 7.933333 2.066667 2.066667 89 119 31 31 6.0 7.0 2.0 2.0
13-14 6.365385 7.038462 1.692308 1.423077 331 366 88 74 6.0 7.0 1.0 1.0
6.280000 6.680000 1.320000 2.080000 157 167 33 52 6.0 7.0 1.0 2.0
14-15 8.000000 6.340000 1.700000 1.860000 400 317 85 93 7.0 6.0 1.0 2.0
5.842105 5.210526 1.263158 2.210526 111 99 24 42 5.0 5.0 1.0 2.0
15-16 7.392857 7.267857 1.517857 1.839286 414 407 85 103 7.5 7.0 2.0 2.0
5.000000 7.900000 0.950000 2.000000 100 158 19 40 5.0 7.0 1.0 2.0
16-17 9.372549 8.431373 1.196078 1.745098 478 430 61 89 9.0 8.0 1.0 2.0
7.304348 9.086957 1.347826 1.956522 168 209 31 45 7.0 8.0 1.0 2.0
17-18 10.062500 9.104167 1.458333 1.666667 483 437 70 80 10.0 9.5 1.0 2.0
1
2
3
4
5
6
pd.pivot_table(df
,index=['赛季', '胜负']
,values=['总篮板数','助攻数', '抢断数', '犯规数']
,aggfunc={"总篮板数": np.mean # 字典形式
,'助攻数': np.sum}
)
助攻数 总篮板数
赛季 胜负
03-04 202 5.787879
263 5.239130
04-05 310 7.731707
267 6.948718
05-06 327 7.276596
194 6.687500
06-07 293 6.872340
177 6.548387
07-08 349 8.644444
190 6.766667
08-09 485 7.696970
102 7.000000
09-10 525 7.383333
126 6.937500
10-11 403 7.368421
151 7.727273
11-12 289 7.888889
98 8.058824
12-13 462 8.049180
89 7.933333
13-14 331 7.038462
157 6.680000
14-15 400 6.340000
111 5.210526
15-16 414 7.267857
100 7.900000
16-17 478 8.431373
168 9.086957
17-18 483 9.104167
226 7.500000
18-19 226 8.892857
219 7.923077

columns

columns类似index,可以设置成列层次化字段,非必须参数

1
2
3
4
5
6
7
8
pd.pivot_table(df
,index=['赛季']
,columns=['胜负'] # 新增参数columns
,values=['总篮板数','助攻数', '抢断数', '犯规数']
,aggfunc=[np.mean, np.sum]
,fill_value=0 # 缺失值补0
# ,margins=1
)
mean ... sum
助攻数 总篮板数 抢断数 犯规数 ... 助攻数 总篮板数 抢断数 犯规数
胜负 All All All ... All All All All
赛季
03-04 6.121212 5.717391 5.886076 5.787879 5.239130 5.468354 1.818182 1.521739 1.645570 1.848485 ... 465 191 241 432 60 70 130 61 88 149
04-05 7.560976 6.846154 7.212500 7.731707 6.948718 7.350000 2.487805 1.923077 2.212500 1.902439 ... 577 317 271 588 102 75 177 78 68 146
05-06 6.957447 6.062500 6.594937 7.276596 6.687500 7.037975 1.829787 1.156250 1.556962 2.297872 ... 521 342 214 556 86 37 123 108 73 181
06-07 6.234043 5.709677 6.025641 6.872340 6.548387 6.743590 1.723404 1.419355 1.602564 2.148936 ... 470 323 203 526 81 44 125 101 70 171
07-08 7.755556 6.333333 7.186667 8.644444 6.766667 7.893333 2.111111 1.433333 1.840000 2.200000 ... 539 389 203 592 95 43 138 99 66 165
08-09 7.348485 6.800000 7.246914 7.696970 7.000000 7.567901 1.712121 1.600000 1.691358 1.636364 ... 587 508 105 613 113 24 137 108 31 139
09-10 8.750000 7.875000 8.565789 7.383333 6.937500 7.289474 1.616667 1.750000 1.644737 1.483333 ... 651 443 111 554 97 28 125 89 30 119
10-11 7.070175 6.863636 7.012658 7.368421 7.727273 7.468354 1.666667 1.318182 1.569620 2.017544 ... 554 420 170 590 95 29 124 115 48 163
11-12 6.422222 5.764706 6.241935 7.888889 8.058824 7.935484 1.955556 1.588235 1.854839 1.622222 ... 387 355 137 492 88 27 115 73 23 96
12-13 7.573770 5.933333 7.250000 8.049180 7.933333 8.026316 1.606557 2.066667 1.697368 1.295082 ... 551 491 119 610 98 31 129 79 31 110
13-14 6.365385 6.280000 6.337662 7.038462 6.680000 6.922078 1.692308 1.320000 1.571429 1.423077 ... 488 366 167 533 88 33 121 74 52 126
14-15 8.000000 5.842105 7.405797 6.340000 5.210526 6.028986 1.700000 1.263158 1.579710 1.860000 ... 511 317 99 416 85 24 109 93 42 135
15-16 7.392857 5.000000 6.763158 7.267857 7.900000 7.434211 1.517857 0.950000 1.368421 1.839286 ... 514 407 158 565 85 19 104 103 40 143
16-17 9.372549 7.304348 8.729730 8.431373 9.086957 8.635135 1.196078 1.347826 1.243243 1.745098 ... 646 430 209 639 61 31 92 89 45 134
17-18 10.062500 7.533333 9.089744 9.104167 7.500000 8.487179 1.458333 1.333333 1.410256 1.666667 ... 709 437 225 662 70 40 110 80 53 133
18-19 8.071429 8.423077 8.240741 8.892857 7.923077 8.425926 1.428571 1.230769 1.333333 1.535714 ... 445 249 206 455 40 32 72 43 48 91
All 7.594663 6.497537 7.221291 7.604828 6.990148 7.395641 1.707751 1.445813 1.618609 1.770013 ... 8615 5985 2838 8823 1344 587 1931 1393 808 2201

17 rows × 24 columns

1
2
3
# pivot_table和groupby机制的同样效果
pd.pivot_table(df,index=[字段1],values=[字段2],aggfunc=[函数],fill_value=0)
df.groupby([字段1])[字段2].agg(函数).fillna(0)

本文标题:NBA之旅1-透视表参数详解

发布时间:2019年10月13日 - 09:10

原始链接:http://www.renpeter.cn/2019/10/13/NBA%E4%B9%8B%E6%97%85-%E9%80%8F%E8%A7%86%E8%A1%A8%E5%8F%82%E6%95%B0%E8%AF%A6%E8%A7%A3.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

Coffee or Tea