关于nba球员数据可视化分析的python代码,要求爬出数据保存到excel,数据分析画出折线图,柱状图等
时间: 2024-04-22 21:23:16 浏览: 215
基于python的NBA球员数据可视化分析.zip
以下是一个 Python 代码的示例,用于爬取 NBA 球员数据并进行可视化分析,同时将数据保存到 Excel 文件中:
```python
import requests
import pandas as pd
import matplotlib.pyplot as plt
# 爬取数据
url = 'https://www.basketball-reference.com/leagues/NBA_2021_per_game.html'
response = requests.get(url)
html = response.content
df_list = pd.read_html(html)
df = df_list[-1]
# 数据清洗
df = df.drop(df[df.Age == 'Age'].index)
df = df.fillna(0)
df['Age'] = df['Age'].astype(int)
df['G'] = df['G'].astype(int)
df['MP'] = df['MP'].astype(float)
df['FG%'] = df['FG%'].astype(float)
df['3P%'] = df['3P%'].astype(float)
df['FT%'] = df['FT%'].astype(float)
df['PTS'] = df['PTS'].astype(float)
# 将数据保存到 Excel 文件
df.to_excel('nba_player_data.xlsx')
# 数据可视化分析
plt.plot(df['Age'], df['PTS'], color='blue')
plt.xlabel('Age')
plt.ylabel('Points per Game')
plt.title('NBA Player Age vs. Points per Game (2020-2021 Season)')
plt.show()
plt.bar(df['Pos'], df['PTS'], color='green')
plt.xlabel('Position')
plt.ylabel('Points per Game')
plt.title('NBA Player Position vs. Points per Game (2020-2021 Season)')
plt.show()
```
代码解释:
1. 使用 requests 库获取 NBA 网站上的球员数据,并使用 pandas 库将其转换为 DataFrame 对象。
2. 对数据进行清洗,删除 Age 列的表头和 NaN 值,将数值型列的数据类型转换为 int 或 float。
3. 使用 pandas 库将 DataFrame 对象保存到 Excel 文件中。
4. 使用 matplotlib 库进行数据可视化分析,分别绘制 NBA 球员年龄与场均得分之间的折线图和 NBA 球员位置与场均得分之间的柱状图,并添加 x 轴、y 轴标签和标题。
5. 最后显示图形。
请注意,这只是一个示例代码,您可以根据需要进行更改和扩展。例如,您可以使用 seaborn 库增强图形效果,使用更多的可视化类型(如散点图、条形图等),或者使用更复杂的分析方法。
阅读全文