下記のような、日経225先物5分足のカンマ区切りのcsvデータN225FtM5m.csvがあります。
YMD列とHHMM列はこのデータを使用するチャートソフトの仕様に合わせるため、日付列より分けたものです。
日付 YMD HHMM 始値 高値 安値 終値 出来高
2021-01-04 00:00:00 2021/1/4 0:00 27520 27520 27520 27520 105
2021-01-04 00:05:00 2021/1/4 0:05 27510 27520 27500 27510 68
2021-01-04 00:10:00 2021/1/4 0:10 27500 27510 27500 27510 109
... ... ... ... ... ... ... ...
このデータからpython pandasのresampleで30分足データを作成してcsv出力しようとしたところエラーとなりました。
python
1import pandas as pd 2 3#日付列をindexとして5分足csvデータ読み込み、index_col=0で日付行がindexに指定されていると思います。 4df_5m = pd.read_csv(r"C:...\N225FtM5m.csv", sep=",", index_col=0,parse_dates=True) 5 6#30分足csvデータ作成 7d_ohlcv = {'始値': 'first', 8 '高値': 'max', 9 '安値': 'min', 10 '終値': 'last', 11 '出来高': 'sum'} 12 13df_30m=df_5m.resample('30min').agg(d_ohlcv) 14df_30m=df_30m.dropna(how='any') 15 16#チャートソフトの仕様に合わせるため最終行までの12000行を抽出 17Ln=len(df_30m) 18if Ln>12000: 19 df_30m=df_30m[Ln-12000:Ln] 20 21#チャートソフトの仕様のHDR'F:DTSHLEK'後に日付行以外の30分足データをcsv出力 22df_Hdr= pd.DataFrame(['F:DTSHLEK']) 23df_Hdr.to_csv(r"C:...\N225FtM30m.csv",header=False, index=False) 24 25df_30m.to_csv(r"C:...\N225FtM30m.csv",sep=",",columns=['YMD','HHMM','始値','高値','安値','終値','出来高'], mode='a', header=False) 26```エラーは以下の通りです。 27KeyError: "Passing list-likes to .loc or [] with any missing labels is no longer supported. 28The following labels were missing: Index(['YMD', 'HHMM'], dtype='object'). 29See https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#deprecate-loc-reindex-listlike" 30 3130分足のcsv出力の代わりに 32print(df_30m) 33を入れてみると以下のとおり30分毎に集約されたデータが出力されるので、データ自体は作成されていると思います。 34日付 YMD HHMM 始値 高値 安値 終値 出来高 352021-08-07 03:00:00 27905.0 27910.0 27895.0 27895.0 66 362021-08-07 03:30:00 27895.0 27900.0 27850.0 27850.0 201 37... ... ... ... ... ... ... ... 38 39また、https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#deprecate-loc-reindex-listlike"を見ると 40indexが不正というようなエラーのようでしたので、確かに30分足にまとめる段階でデータは6件ごとになっていると考え、行数を12000行にしたあとに 41df_30m = df_30m.reset_index(inplace=True,drop=True) 42としてみたのですがうまくいきませんでした。 43 44ご教示いただけますと幸いです。 45よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー