前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NBA之旅1-透视表参数详解

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

作者头像
皮大大
发布2021-03-02 15:08:09
4390
发布2021-03-02 15:08:09
举报
文章被收录于专栏:机器学习/数据可视化

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

代码语言:javascript
复制
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
代码语言:javascript
复制
path = r"D:\Python\datalearning\利用Python进行数据分析\NBA_Data.csv"

读取数据

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

查看数据

  • head():前5行
  • tail():后5行
代码语言:javascript
复制
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

修改列属性名称

  • 将对手名称改成对手:对手名称--->对手球员姓名--->姓名
  • 同时修改多个属性,用字典的形式
代码语言:javascript
复制
df.rename(columns={"对手名称": "对手", "球员姓名": "姓名"})

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>


查看某个属性的种类

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

姓名

赛季

胜负

对手

对手总得分

己方总得分

己方名称

首发

上场时间

投篮命中率

...

罚球次数

总篮板数

前场篮板数

后场篮板数

助攻数

抢断数

盖帽数

失误数

犯规数

得分

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

12

df['对手名称'].value_counts() # 默认降序# df['对手名称'].value_counts(ascending=True) 改成升序

代码语言:javascript
复制
公牛     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

查看得分的最高和最低分

代码语言:javascript
复制
print(max(df['得分']))
print(min(df['得分']))
代码语言:javascript
复制
61
3

查看胜负场数总和

代码语言:javascript
复制
print((df["胜负"]=='胜').sum())
print((df["胜负"]=='负').sum())
代码语言:javascript
复制
787
406

得分柱状图

代码语言:javascript
复制
# 解决中文乱码问题
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()

对手得分前5名通过sort_values()函数进行排序,ascending=False指定为降序

代码语言:javascript
复制
df.sort_values(by='对手总得分', ascending=False).head(3)

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

球员姓名

赛季

胜负

对手名称

对手总得分

己方总得分

己方名称

首发

上场时间

投篮命中率

...

罚球次数

总篮板数

前场篮板数

后场篮板数

助攻数

抢断数

盖帽数

失误数

犯规数

得分

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

查看数据的多种信息

  • 总数
  • 中位数
  • 平均值
  • 最小值
代码语言:javascript
复制
df.describe()

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <p><img src="https://s2.ax1x.com/2019/10/13/uj27gx.png" alt=""></p> <p>以上为部分数据截图</p> <h3 id="关于index使用">关于index使用</h3> <h4 id="两个属性的层次化索引">两个属性的层次化索引</h4> <ul> <li> <p>&quot;对手名称&quot;是第一层索引</p> </li> <li> <p>&quot;赛季&quot;是第二层索引</p> </li> </ul> <p><strong>数据含义:同一对手在不同赛季下的各种数据</strong></p> <figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">pd.pivot_table(df, index=[<span class="string">'对手名称'</span>,<span class="string">'赛季'</span>])</span><br></pre></td></tr></table></figure> <div> <style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

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=['赛季', '对手名称'])

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre> <

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)

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

球员姓名

赛季

胜负

对手名称

对手总得分

己方总得分

己方名称

首发

上场时间

投篮命中率

...

罚球次数

总篮板数

前场篮板数

后场篮板数

助攻数

抢断数

盖帽数

失误数

犯规数

得分

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

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

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

代码语言:javascript
复制
pd.pivot_table(df
               ,index=['赛季', '胜负']
               ,values=['总篮板数','助攻数', '抢断数', '犯规数']
              )

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

助攻数

总篮板数

抢断数

犯规数

赛季

胜负

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
代码语言:javascript
复制
pd.pivot_table(df
               ,index=['赛季', '胜负']
               ,values=['总篮板数','助攻数', '抢断数', '犯规数']
               ,aggfunc=[np.mean, np.sum, np.median]
              )

.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } <pre><code>.dataframe thead tr th { text-align: left; } .dataframe thead tr:last-of-type th { text-align: right; } </code></pre>

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

123456

pd.pivot_table(df ,index=['赛季', '胜负'] ,values=['总篮板数','助攻数', '抢断数', '犯规数'] ,aggfunc={"总篮板数": np.mean # 字典形式 ,'助攻数': np.sum} )

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

助攻数

总篮板数

赛季

胜负

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,可以设置成列层次化字段,非必须参数

代码语言:javascript
复制
pd.pivot_table(df
               ,index=['赛季']
               ,columns=['胜负']   # 新增参数columns
               ,values=['总篮板数','助攻数', '抢断数', '犯规数']
               ,aggfunc=[np.mean, np.sum]
               ,fill_value=0   # 缺失值补0
#                ,margins=1
              )

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead tr th { text-align: left; } .dataframe thead tr:last-of-type th { text-align: right; } </code></pre>

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

代码语言:javascript
复制
# 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 国际 转载请保留原文链接及作者。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 读取数据
  • 查看数据
  • 修改列属性名称
  • 查看某个属性的种类
  • 查看得分的最高和最低分
  • 查看胜负场数总和
  • 得分柱状图
  • 对手得分前5名通过sort_values()函数进行排序,ascending=False指定为降序
  • 查看数据的多种信息
    • 交换两个属性的位置
    • 数据框中选取部分values
      • 生成透视表,使用部分数据
      • Aggfunc
        • 参数详解
          • 字典形式
          • columns
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档