私は古いスクリプトを持っており、それが完璧に動作するために使用され、それがダニ取り(入札と尋ねる)のデータと、次のように、パンダ.resample
と.agg
を使用してOHLCデータにそれを回すために設計されました:パンダCONCATとOHLCの問題
df = pd.DataFrame(list(MDB.CHART.find()))
DF = df[['dt','bid','ask']]
DF = DF.set_index('dt')
DB = DF['bid'].resample('2T').agg({ 'openbid' : 'first',
'highbid' : 'max',
'lowbid' : 'min',
'closebid': 'last'})
DA = DF['ask'].resample('2T').agg({ 'openask' : 'first',
'highask' : 'max',
'lowask' : 'min',
'closeask': 'last'})
dg = pd.concat([DB, DA], axis = 1)
And it would produce the following DataFrame layout:
dt openbid highbid lowbid closebid openask highask lowask closeask
....
....
しかし、私は(正確に同じデータを持つ)同じスクリプトを実行すると、今、私は次を得る:私は集まる
bid ask
dt
closeask 2015-08-19 06:00:00 NaN 1.10619
2015-08-19 06:02:00 NaN 1.10636
2015-08-19 06:04:00 NaN 1.10646
2015-08-19 06:06:00 NaN 1.10657
2015-08-19 06:08:00 NaN 1.10649
... ... ...
openbid 2015-08-20 13:28:00 1.11661 NaN
2015-08-20 13:30:00 1.11683 NaN
2015-08-20 13:32:00 1.11684 NaN
2015-08-20 13:34:00 1.11697 NaN
2015-08-20 13:36:00 1.11673 NaN
[7592 rows x 2 columns]
、またはパンダは(再び)resample
とagg
が変更されていることを前提としてい機能?誰かが自分の杖を振って、私の頭を文書の近くに置くという手間を省くことができますか?
ありがとうございました。
ps。私が以下を使用するとき
df = (DF.resample('2T').agg({'Open': 'first', 'High': 'max', 'Low': 'min', 'Close': 'last'}))
I am getting a future warning:
FutureWarning: using a dict with renaming is deprecated and will be removed in a future version
しかし、ドキュメントにはまだ何もありません!
は、DBとDAマルチインデックスはありますか?また、 'agg'を使った辞書の使用法は、将来のバージョンでは削除される予定ですので、仮想envを作成してコードと同じpythonバージョンを残すようにしてください。 – DJK
@ djk47463返信用に歓声を言います。これはリアルタイムのチャーティングでそれを洞察しているので残念ですが、個々の列から新しいDataFrameを作成する必要があるため、オーバーヘッドが大きくなります。質問は心配しないでください。私は最後に何かを刻む過程にあります。 – ajsp