У меня есть старый скрипт, и раньше он работал отлично, он был разработан для получения данных тиков (предложений и запросов) и преобразования их в данные OHLC с использованием панд .resample
и .agg
, как показано ниже:
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
? Может ли кто-нибудь взмахнуть палочкой и избавить меня от необходимости приближать голову к документам?
Спасибо.
пс. когда я использую следующее
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
Но пока ничего в документах!
add_suffix
вместоDF.bid.resample('2T').ohlc().add_suffix('bid')
то же самое дляask
24.11.2017