2017-06-12 2 views
0

1950年以来、NBAのすべてのプレイヤーのデータセットとその統計データを持っています。データセットの列は、該当年であるYearと、プレイヤー名とチームその年のNBAでの年間、および彼のキャリアの毎年の各選手のための異なる統計の20の列。列の1つは「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

「私は問題を抱えているが、」十分な問題の説明ではありません。具体的にする:データフレームの列は何ですか?最後のプロットは何を示しますか(xaxisとは何ですか、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

私はあなたの答えを受け入れましたか? –