rollingでdataframeを関数に渡したい
関数にDataFrameを渡し、関数内で処理を書きたいです。
大きいデータを処理する前にダミーデータでテストした際に、以下の問題が出たので質問します。
一度は動いたのですが、pandasをインストールしなおしたらバージョンが変わりエラーが出るようになりました。
直しながらやっていますが解決できません。
pandasなどバージョン
1.3.0 (以前のバージョンは不明です)
発生している問題・エラーメッセージ
エラーメッセージ DataError: No numeric types to aggregate
該当のソースコード
python
1import pandas as pd 2import numpy as np 3 4df = pd.DataFrame({'date':['2021-01-01','2021-01-02','2021-01-03','2021-01-04'], 'v1':[1,2,3,4], 'v2':[2,3,4,5]}) 5df['date'] = df['date'].astype(np.datetime64) 6df['date'] = df['date'].dt.to_period('D') 7df = df.set_index('date') 8 9def func(win, ds): 10 ds = ds.loc[win.index] 11 print(ds) 12 13df.rolling(2).apply(func, args=[df])
試したこと
最後の1行に['v1']を追記してみました。
df['v1'].rolling(2).apply(func, args=[df])
エラーメッセージ TypeError: Argument 'args' has incorrect type (expected tuple, got DataFrame)
試したこと
最後の1行のargs=に()を追記してみました。
df['v1'].rolling(2).apply(func, args=([df]))
エラーメッセージ TypeError: Argument 'args' has incorrect type (expected tuple, got DataFrame)
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/23 01:45