数据是从网上获取的,关于一份NBA的数据
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
path = r"D:\Python\datalearning\利用Python进行数据分析\NBA_Data.csv"
data = pd.read_csv(path, encoding='utf-8', names=[
'球员姓名','赛季','胜负','对手名称','对手总得分','己方总得分',
'己方名称','首发','上场时间','投篮命中率','投篮命中数','投篮出手数',
'三分命中率','三分命中数','三分出手数','罚球命中率','罚球命中数','罚球次数',
'总篮板数','前场篮板数','后场篮板数','助攻数','抢断数','盖帽数','失误数','犯规数','得分'
])
df = pd.DataFrame(data)
head()
:前5行
tail()
:后5行
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
对手名称--->对手
,球员姓名--->姓名
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) 改成升序 |
---|
公牛 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
print(max(df['得分']))
print(min(df['得分']))
61
3
print((df["胜负"]=='胜').sum())
print((df["胜负"]=='负').sum())
787
406
# 解决中文乱码问题
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()
sort_values()
函数进行排序,ascending=False
指定为降序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
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>"对手名称"是第一层索引</p> </li> <li> <p>"赛季"是第二层索引</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
三分出手数 | 三分命中数 | 三分命中率 | 上场时间 | 前场篮板数 | 助攻数 | 后场篮板数 | 失误数 | 对手总得分 | 己方总得分 | ... | 投篮出手数 | 投篮命中数 | 投篮命中率 | 抢断数 | 犯规数 | 盖帽数 | 罚球命中数 | 罚球命中率 | 罚球次数 | 首发 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
赛季 | 对手名称 | |||||||||||||||||||||
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
查看詹姆斯在不同的赛季下的胜负情况,以及总篮板数、助攻数、抢断数、犯规数四项数据:
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 |
字典
形式
mean
列表
形式,可以使用numpy的函数形式,例如:np.sum、np.mean
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类似index,可以设置成列层次化字段,非必须参数
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
# 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
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。