Я пытаюсь преобразовать дневной кадр данных частоты в минутные данные, то есть для каждой строки, я хочу, чтобы эта комбинация тикера и даты повторялась на минутной основе и в предыдущем посте ( Преобразование ежедневных пандкадр данных к частоте минут ) мне было предложено использовать метод ffil, описанный ниже, но этот подход некорректно заполняет отдельные строки для определенных тикеров на следующий день.Это показано ниже:
Таким образом, нижеприведенный кадр данных должен быть преобразован, и он работает, потому что даты последовательно:
import pandas as pd
dict1 = [
{'ticker':'jpm','date': '2016-11-27','returns': 0.2},
{'ticker':'ge','date': '2016-11-28','returns': 0.2},
{'ticker':'amzn','date': '2016-11-29','returns': 0.2}
]
df1= pd.DataFrame(dict1)
df1['date'] = pd.to_datetime(df1['date'])
df1=df1.set_index(['date','ticker'], drop=True)
df_min1 = df1.unstack().asfreq('Min', method='ffill').between_time('13:30','13:32').stack()
Ниже df2 пропускает 1 день, а затем в итоговом кадре данныхdf_min2, первый тикер повторяется в первоначально пропущенную дату:
dict2 = [
{'ticker':'jpm','date': '2016-11-27','returns': 0.2},
{'ticker':'ge','date': '2016-11-29','returns': 0.2},
{'ticker':'amzn','date': '2016-11-30','returns': 0.2}
]
df2 = pd.DataFrame(dict2)
df2['date'] = pd.to_datetime(df2['date'])
df2=df2.set_index(['date','ticker'], drop=True)
df_min2 = df2.unstack().asfreq('Min', method='ffill').between_time('13:30','13:32').stack()
Кто-нибудь может предложить решение?