2017-06-12 93 views
0

我有一個1950年以來NBA中每個玩家的數據集和他們的統計數據。數據集中的列包括年份(適用年份),玩家名稱和他的團隊那一年,NBA的幾年以及職業生涯每一年每個球員的20個不同數據列。其中一列是'PTS',這是該玩家當年得分的總分數。我想在Python中創建散點圖,在x軸上顯示1950年至2017年,並在y軸上顯示當年得分。我相信要返回的總點,每個賽季的最有效的方法是:python在熊貓數據框中聚合列的散點圖

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: 'Year'

和空白圖表 我想要一個1950年-2017年的所有年份的總積分,用紅色散點圖表示。

+0

「我有問題」是不足夠的問題說明。具體:數據框中的列是什麼?最後的情節應該表明什麼(什麼是x軸,什麼是yaxis,這些要點代表什麼?),你試圖創造這樣一個情節的是什麼?問題是什麼?它與您的期望有多大差距,還是會出現錯誤?正如你所看到的,開放問題的列表比你的問題本身更長。請[編輯]讓它可以回覆。 – ImportanceOfBeingErnest

+0

謝謝我編輯帖子以獲得更多清晰度 –

+0

轉換「年份」列將解決您發佈的錯誤。 (請參閱:https://stackoverflow.com/questions/35432918/scatter-plot-with-string-x-and-y-coordinates) 要回答其他問題,您需要顯示更多的代碼。 – mimre

回答

1

您正在收到一個關鍵錯誤,因爲在聚合數據框中沒有名爲「Year」的列,因爲該年被用作索引。

爲了取回索引作爲數據幀的列使用.reset_index()

像這樣的東西應該工作:

ptsbyyear = df.groupby("Year").agg({'PTS': ['sum']}).reset_index() 
ptsbyyear.plot(kind="scatter", x="Year", y="PTS") 
+0

非常感謝。我注意到,今年想要一個專欄名稱,並意識到這是問題,但不知道如何檢索年份。再次感謝。 –

+0

我接受了你的答案,對吧? –