У меня есть DataFramewith с индексом datetime.
df1=pd.DataFrame(index=pd.date_range('20100201', periods=24, freq='8h3min'),
data=np.random.rand(24),columns=['Rubbish'])
df1.index=df1.index.to_datetime()
Я хочу пересчитать этот DataFrame, как в:
df1=df1.resample('7D').agg(np.median)
Затем у меня есть другой DataFrame с индексом другогочастота и запуск с другим смещением часа
df2=pd.DataFrame(index=pd.date_range('20100205', periods=24, freq='6h3min'),
data=np.random.rand(24),columns=['Rubbish'])
df2.index=df2.index.to_datetime()
df2=df2.resample('7D').agg(np.median)
Операции работают хорошо независимо, но когда я пытаюсь объединить результаты, используя
print(pd.merge(df1,df2,right_index=True,left_index=True,how='outer'))
, я получаю:
Rubbish_x Rubbish_y
2010-02-01 0.585986 NaN
2010-02-05 NaN 0.423316
2010-02-08 0.767499 NaN
Хотя я хотел бы повторить выборку с одинаковым смещением и получить следующий результат после слияния
Rubbish_x Rubbish_y
2010-02-01 AVALUE AVALUE
2010-02-08 AVALUE AVALUE
Я пробовал следующее, но он генерирует только nans
df2.reindex(df1.index)
print(pd.merge(df1,df2,right_index=True,left_index=True,how='outer'))
Я должен придерживаться pandas 0.20.1
.
Я пытался mergeas_of
df1.index
Out[48]: Index([2015-03-24, 2015-03-31, 2015-04-07, 2015-04-14, 2015-04-21, 2015-04-28], dtype='object')
df2.index
Out[49]: Index([2015-03-24, 2015-03-31, 2015-04-07, 2015-04-14, 2015-04-21, 2015-04-28], dtype='object')
output=pd.merge_asof(df1,df2,left_index=True,right_index=True)
, но он вылетает со следующей трассировкой
Traceback (most recent call last):
TypeError: 'NoneType' object is not callable