###最初に
自分の言語能力が低いのと、実装したい事が幾らか抽象的なので、伝わりづらい所があったら、遠慮なく指摘していただけたら幸いです。
前提・実現したいこと
Python3.7で下記のdfの "BeanNumber_vert"ごとにfor文でグラフを描画させ、.jpg形式で保存するというコードを考えています。
この様な流れでの実装を考えていました。
0. dfから"BeanNumber_vert"をリスト(Label)として抽出
0. ブーリアンインデックスでLabelとdfと"BeanNumber_vert"の値が一致ものを取り出す
0. 「2.」をMatplotlibで描画させる。
0. 上記の過程をfor文を用いて、dfの全ての"BeanNumber_vert"に関してMatplotlibで描画させる。
実際にコードを書く上で、↑の「1.」の部分が上手く実装できていないのか上手く作動させる事ができませんでした。
該当のソースコード
Python3
1import os 2import matplotlib 3import matplotlib.pyplot as plt 4import pandas as pd 5import numpy as np 6 7df = pd.DataFrame( 8 { 9 "Weight(g)": [0.43, 0.4, 0.45, 0.4, 0.35, 0.5, 0.35, 0.51, 0.43], 10 "Long Axis": [0.92, 0.9, 1.04, 0.97, 0.97, 0.8, 0.97, 1.21, 0.92], 11 "Short Axis": [0.91, 0.89, 0.97, 0.92, 0.88, 0.7, 0.88, 0.95, 0.85], 12 "Grain Thickness": [0.73, 0.56, 0.63, 0.74, 0.51, 0.6, 0.51, 0.77, 0.83], 13 "BeanNumber_vert": ["B2", "B2", "B2", "B6", "B6", "B6", "B39", "B39", "B39"], 14 } 15) 16 17for Label,data in zip(df["BeanNumber_vert"],df): 18 bean_number = df.iloc[0]["BeanNumber_vert"] 19 [df["BeanNumber_vert"]==Label] 20 df1 = data[data["BeanNumber_vert"]==Label] 21 df1.hist("Long Axis") 22 plt.savefig(f"bean_number_{bean_number}.jpg")
発生している問題・エラーメッセージ
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-52-88d6d44357b1> in <module>() 1 for data,Label in zip(df,grouped_df): ----> 2 df1 = data[data["BeanNumber_vert"]==Label] 3 df1.hist("Long Axis") 4 plt.savefig(f"bean_number_{bean_number}.jpg") TypeError: string indices must be integers string indices must be integers
試したこと
for Label,data in zip(df["BeanNumber_vert"],df): bean_number = df.iloc[0]["BeanNumber_vert"] [df["BeanNumber_vert"]==Label]★
"★"の部分でdfの"BeanNumber_vert"をList型として取り出せてないため、上記の様なエラーコードが発生していると思ったのですが、エラーコードを見るに、ブーリアンインデックスでは文字型ではなく、整数型として要求されてました。
この事に関して調べてみたのですが、自分の力量では特に解決案を見つけれられませんでした...
補足情報(FW/ツールのバージョンなど)
Anaconda
Python
Pycharm
直接的な解決案の回答でなくとも、参考になりそうなサイト、類似の事例を教えて頂けると幸いです。
お忙しいとは思いますが、よろしくお願いいたします。
情報に不足がありましたら、ご指摘お願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/15 13:24