使用日期+时间戳索引和带有日期索引的数据框加入数据框

时间:2016-01-12 01:43:36

标签: python pandas

Pandas是否有办法加入数据框df,其格式为datetime64[ns],格式为'2014-09-26 15:15:00',另一种数据框格式为datetime64[ns]格式,例如{ {1}}但没有时间戳?

例如:

'2014-09-26

和df2

print df1
                           Vol 
    2011-01-05 09:45:00  0.333315 
    2011-01-05 09:45:00  0.228341
    2011-01-05 10:00:00  0.207289

我尝试使用 macro_ind 2010-01-05 0.216485 2010-01-06 0.201550 2010-01-07 0.187641 2010-01-08 0.176686 并希望得到:

df1.join(df2)

但没有成功......我可以使用 Vol macro_ind 2011-01-05 09:45:00 0.333315 0.216485 2011-01-05 09:45:00 0.228341 0.216485 2011-01-05 10:00:00 0.207289 0.216485 但这会迫使我创建一个日期列并重置我的索引等等......我希望避免许多步骤。

1 个答案:

答案 0 :(得分:0)

我假设macro_ind的日期为2011。我建议将相应的time列设置为普通列,如下所示:

date:

        date  macro_ind
0 2011-01-05   0.216485
1 2011-01-06   0.201550
2 2011-01-07   0.187641
3 2011-01-08   0.176686

time: 
                 time       Vol
0 2011-01-05 09:45:00  0.333315
1 2011-01-05 09:45:00  0.228341
2 2011-01-05 10:00:00  0.207289

然后,以下工作:

time_df['date'] = time_df.time.apply(lambda x: x.date())
date_df['date'] = date_df.date.apply(lambda x: x.date())
time_df = time_df.merge(date_df, how='left', on='date').drop('date', axis=1)

                 time       Vol  macro_ind
0 2011-01-05 09:45:00  0.333315   0.216485
1 2011-01-05 09:45:00  0.228341   0.216485
2 2011-01-05 10:00:00  0.207289   0.216485