前提・実現したいこと
Pythonを使って、2つのリストをまとめて処理したいのですがエラーが出てうまく動かすことができていません。
具体的には、以下のようなことをしたいのですが、どなたかアドバイスをくださらないでしょうか。
・あるcsvファイルの'day_start_from_0120'が52以上68未満のデータをdf_test_1とする。
・あるcsvファイルの'day_start_from_0120'が53以上69未満のデータをdf_test_2とする。
(略)
・あるcsvファイルの'day_start_from_0120'が69以上86未満のデータをdf_test_17とする。
発生している問題・エラーメッセージ
KeyError Traceback (most recent call last) /usr/local/lib/python3.6/dist-packages/pandas/core/computation/scope.py in resolve(self, key, is_local) 186 if self.has_resolvers: --> 187 return self.resolvers[key] 188 24 frames KeyError: 'day' During handling of the above exception, another exception occurred: KeyError Traceback (most recent call last) KeyError: 'day' During handling of the above exception, another exception occurred: UndefinedVariableError Traceback (most recent call last) /usr/local/lib/python3.6/dist-packages/pandas/core/computation/scope.py in resolve(self, key, is_local) 201 from pandas.core.computation.ops import UndefinedVariableError 202 --> 203 raise UndefinedVariableError(key, is_local) 204 205 def swapkey(self, old_key: str, new_key: str, new_value=None): UndefinedVariableError: name 'day' is not defined
該当のソースコード
Python
1import pandas as pd 2 3df = pd.read_csv("data.csv") 4 5lists = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17] 6days = [52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85] 7for(list, day) in zip (lists, days): 8 df_test[list] = df.query('day <= day_start_from_0120 < day+16')
補足情報(FW/ツールのバージョンなど)
リストを作って処理すればうまくいくのでは?と考えただけであって、やり方にこだわりはありません。
他のやり方でも全く構いませんので、こうしたら良いのではというアドバイスがありましたら教えていただけるととても助かります!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/28 22:51
2020/04/29 01:12
2020/04/29 09:14
2020/04/29 09:39
2020/04/29 09:43
2020/04/29 10:47
2020/04/29 10:55
2020/04/29 11:48