###前提・実現したいこと
python3.6.3にてcsvファイルをもとにヒストグラムの描画を行おうとしています。
csvファイルは下記のようになっており、
グループ毎の年齢の分布で描画しようと考えています。
また年齢はあらかじめfloatに変換してあります。
###csvファイル一部抜粋
グループ,年齢,xx,xx,xx,.... 0,20.0,xx,xx,xx,.... 0,21.0,xx,xx,xx,.... 0,30.0,xx,xx,xx,.... . . 1,17.0,xx,xx,xx,.... 1,17.0,xx,xx,xx,.... . . 2,21.0,xx,xx,xx,...
###発生している問題・エラーメッセージ
Traceback (most recent call last): File "C:\pythonPj\seikei.py", line 51, in <module> checkdata(df,"年齢") File "C:\pythonPj\seikei.py", line 36, in checkdata plt.hist((x1,x2,x3), bins=16, stacked=False ) File "C:\Users\hogemoge\AppData\Local\Programs\Python\Python36-32\lib\site-packages\matplotlib\pyplot.py", line 3004, in hist stacked=stacked, normed=normed, data=data, **kwargs) File "C:\Users\hogemoge\AppData\Local\Programs\Python\Python36-32\lib\site-packages\matplotlib\__init__.py", line 1710, in inner return func(ax, *args, **kwargs) File "C:\Users\hogemoge\AppData\Local\Programs\Python\Python36-32\lib\site-packages\matplotlib\axes\_axes.py", line 6193, in hist xmin = min(xmin, xi.min()) File "C:\Users\hogemoge\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\core\generic.py", line 955, in __nonzero__ .format(self.__class__.__name__)) ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
###該当のソースコード
python
1# -*- coding: utf-8 -*- 2import csv 3import pandas as pd 4from pandas import DataFrame 5import matplotlib 6import matplotlib.pyplot as plt 7 8def checkdata(df,index): 9 10 #各グループ毎のデータを取得 11 x1 = [df[index][df['グループ']==0]] 12 x2 = [df[index][df['グループ']==1]] 13 x3 = [df[index][df['グループ']==2]] 14 15 #ヒストグラムの生成 16 plt.hist((x1,x2,x3), bins=16, stacked=False ) 17 18 #画像の保存 19 plt.savefig("%s_graph.png" %index) 20 21 #画像の表示 22 plt.show() 23 24if __name__ == '__main__': 25 #データ読み込み 26 df = pd.read_csv('hoge.csv') 27 checkdata(df,"年齢")
###試したこと
グループ分けせずに全データでヒストグラムの描画を行ったところ、
上手く描画させることが出来ました。
###補足情報(言語/FW/ツール等のバージョンなど)
python3.6.3
Windows10 64bit
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/25 09:23
2017/10/25 09:26