前提・実現したいこと
for文に対して一行ずつ処理したいのですがTypeError: tuple indices must be integers or slices, not strというエラーが出てしまいます。原因はデータがtupleだかららしいですが単純にリストにしてもうまくいかなかった(あまり調べてないけど)今の自分に当てはまる解決方法が見つからなかったので質問しました。要はデータフレームをfor文で一行ずつ処理したいということです。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
3 for i in rate_reset_index.iterrows(): ----> 4 if i['hour'] == 0: 5 nangatu = i['month'] #日付を取得 6 nanniti = i['day'] TypeError: tuple indices must be integers or slices, not str
該当のソースコード
python
1for i in rate_reset_index.iterrows(): 2 if i['hour'] == 0: 3 nangatu = i['month'] #日付を取得 4 nanniti = i['day'] 5 day = str(nangatu) + '/' + str(nanniti) #hizuke = str(mm) + '/' + str(dd) 6 hajimene = i['o'] #openを取得 7 if i['hour'] == 6: 8 owarine = i['c'] #closeを取得 9 tokyo = owarine - hajimene 10 if tokyo >= 1: 11 t_bar = 'white candlestick' 12 else: 13 t_bar = 'black candlestick' 14 if i['hour'] == 7: 15 hajimene = i['o'] 16 if i['hour'] == 12: 17 owarine = i['c'] 18 london = owarine - hajimene 19 if london >= 1: 20 l_bar = 'white candlestick' 21 else: 22 l_bar = 'black candlestick' 23 if i['hour'] == 13: 24 hajimene = i['o'] 25 if i['hour'] == 17: 26 owarine = i['c'] 27 ny = owarine - hajimene 28 if ny >= 1: 29 n_bar = 'white candlestick' 30 else: 31 n_bar = 'black candlestick' 32 if i['hour'] == 18: 33 hajimene = i['o'] 34 if i['hour'] == 23: 35 owarine = i['c'] 36 midnight = owarine - hajimene 37 if midnight >= 1: 38 m_bar = 'white candlestick' 39 series = pd.Series([day, t_bar, l_bar, n_bar, m_bar], index=each_market.columns) 40 each_market = each_market.append(series, ignore_index = True) 41 else: 42 m_bar = 'black candlestick' 43 series = pd.Series([day, t_bar, l_bar, n_bar, m_bar], index=each_market.columns) 44 each_market = each_market.append(series, ignore_index = True)
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。