为了账号安全,请及时绑定邮箱和手机立即绑定

在 2 个熊猫数据帧之间搜索忽略时间的日期的最快和最正确的方法

在 2 个熊猫数据帧之间搜索忽略时间的日期的最快和最正确的方法

慕勒3428872 2021-12-29 10:28:56
我有 2 个数据框。一个有日期时间索引并包含每日数据点:df1.head(5)            data_pointDate                                                                 2004-04-01  1.180180     2004-04-02  1.213555      2004-04-05  1.243821      2004-04-06  1.224543      2004-04-07  1.213832    另一个有 5 分钟的数据点:df2.head(5)                        Open   High                   DatetimeDate_Time                                                                   2010-01-04 09:00:00  22.40  22.45         2010-01-04 09:00:002010-01-04 09:05:00  22.45  22.45         2010-01-04 09:05:002010-01-04 09:10:00  22.40  22.45         2010-01-04 09:10:002010-01-04 09:15:00  22.45  22.45         2010-01-04 09:15:002010-01-04 09:25:00  22.35  22.35         2010-01-04 09:25:00问题:当我遍历 的值时df2,我需要知道df1.这将需要df1每天查询288 次(一天有 288 个单位为 5 分钟)才能获得相同的数据。问题:解决这个问题的最正确和最有效的方法是什么?合并 2 个数据帧,df3看起来像这样?但是如何?                      Open   High                   daily_data_point_from_df1Date_Time                                                                   2010-01-04 09:00:00  22.40  22.45                   1.1112010-01-04 09:05:00  22.45  22.45                   1.111  2010-01-04 09:10:00  22.40  22.45                   1.1112010-01-04 09:15:00  22.45  22.45                   1.111   2010-01-04 09:25:00  22.35  22.35                   1.111或者我应该每天查询 df1 并手动处理逻辑以避免在同一天多次执行?for index, row in df2.iterrows():     # Manually check if date changed and do this if it did:     date = df2['Datetime'].replace(hour=0, minute=0)     daily_data_point_from_df1 = df.loc[date]
查看完整描述

1 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

你可以使用 merge

df3=df2.assign(Date=df2.Datetime.dt.date).merge(df1.reset_index(),on='Date',how='left')


查看完整回答
反对 回复 2021-12-29
  • 1 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信