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
但这会迫使我创建一个日期列并重置我的索引等等......我希望避免许多步骤。
答案 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