我拥有自1950年以来NBA中每位球员及其统计数据的数据集。数据集中的列包括年份,即适用的年份,球员姓名和他当年的球队,NBA的年份,以及在他职业生涯的每一年中,每个球员有20列不同的统计数据。其中一个栏目是'PTS',这是玩家当年得分的总分数。我想在Python中创建一个散点图,它在x轴上显示1950年到2017年,以及在y轴上显示当年得分的总点数。我相信每个赛季返回总得分的最有效方法是:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
seasons = pd.read_csv('C:/windows/temp/Seasons_Stats.csv')
tp_yr = seasons.groupby('Year').agg({'PTS': ['sum']})
但是使用以下方法创建散点图:
tp_yr.plot.scatter( x= 'Year', y = 'PTS', s = 'None', c='red')
返回:
KeyError:'年'
和一张空白图表 我希望1950年至2017年的所有年份的总点数用红色散点图表示。
答案 0 :(得分:1)
您收到了一个关键错误,因为没有列名为"年"在聚合数据框中,因为年份用作索引。
为了将索引作为数据框的列返回,请使用.reset_index()
。
这样的事情应该有效:
ptsbyyear = df.groupby("Year").agg({'PTS': ['sum']}).reset_index()
ptsbyyear.plot(kind="scatter", x="Year", y="PTS")