kaggleリンク内容のデータを用いて、X軸がtest preparation courseでグループ分けしたもの、y軸がmath・reading・writingのテストの総合的な平均点となっている棒グラフを作りたいと考えております。
★9月からの大学の授業で初めてpythonに触れたのでまだ分からない所だらけです。
質問部分の他に3列まとめて平均値を出す部分も自分なりに調べましたが、あっているかどうか自信がありません。他にコードがおかしいよという所があれば教えてください。
発生している問題・エラーメッセージ
Key Errorが出てしまう。
mean_df= df['math score']['reading score']['writing score'].mean() File "/opt/anaconda3/envs/Kivy/lib/python3.6/site-packages/pandas/core/series.py", line 882, in __getitem__ return self._get_value(key) File "/opt/anaconda3/envs/Kivy/lib/python3.6/site-packages/pandas/core/series.py", line 991, in _get_value loc = self.index.get_loc(label) File "/opt/anaconda3/envs/Kivy/lib/python3.6/site-packages/pandas/core/indexes/range.py", line 349, in get_loc raise KeyError(key) KeyError: 'reading score'``` ```ここに言語を入力 コード ``````# システム関係のコマンドライブラリ import sys # データベースライブラリ pandas import pandas as pd # 計算用のライブラリ numpy import numpy as np # 作図ライブラリ matplotlib import matplotlib.pyplot as plt # 日本語フォントを設定するためのライブラリ from matplotlib.font_manager import FontProperties fp = FontProperties(fname=r'./fonts/HuiFontP29.ttf', size=16) # データを読み込む try: df = pd.read_csv('./data/students.csv',engine="python") except: print('Data File Read Error: Exit') sys.exit() # figureオブジェクトを生成する fig = plt.figure() # axesオブジェクトをfigureオブジェクトに設定する ax = fig.add_subplot(1, 1, 1) # テスト前の準備の度合いごとの平均値を計算する。 left = df.groupby('test preparation course').mean() # 3つのテストの平均 mean_df= df['math score']['reading score']['writing score'].mean() height = mean_df # axesオブジェクトに対して棒グラフを設定する ax.bar(left,height,width=0.5,color='mediumseagreen', edgecolor='darkgreen',ecolor='orange', capsize=5) # axesオブジェクトに対して凡例設定 # ax.legend(["sample data"]) # axesオブジェクトに対してタイトルを設定 ax.set_title("テスト前準備の有無別の平均点", fontproperties=fp) # axesオブジェクトに対してグリッドを設定 #ax.grid(True) # axesオブジェクトに対して横軸名ラベルと縦軸名ラベルを設定 ax.set_xlabel('テスト前準備の有無', fontproperties=fp) ax.set_ylabel('3つのテストの平均得点', fontproperties=fp) # axesオブジェクトに対して横軸,縦軸の範囲指定 #ax.set_xlim(left= -2, right=40) #ax.set_ylim(bottom=0, top=11) # 表示する plt.show()
試したこと
csvファイルのcolumsをpythonにそのままコピペしたり、名前を変えてみたりしました。
補足情報(FW/ツールのバージョンなど)
python3.6
回答2件
あなたの回答
tips
プレビュー