繁体   English   中英

按日期时间和日期列合并 Pandas Dataframe

[英]Merging Pandas Dataframe by Datetime and Date column

我有两个如下所示的数据框。

timestamp                 data
2015-01-01 00:00:00       296.0
2015-01-01 00:30:00       342.0
2015-01-01 01:00:00       431.0
2015-01-01 01:30:00       234.0
2015-01-01 02:00:00       234.0
...
2015-02-01 00:00:00       123.0
...

date             different date
2015-01-01       111
2015-01-02       233
2015-01-03       1324
2015-01-04       1231
2015-01-05       112
...

我想要的是

timestamp                 data     different date
2015-01-01 00:00:00       296.0    111
2015-01-01 00:30:00       342.0    111
2015-01-01 01:00:00       431.0    111
2015-01-01 01:30:00       234.0    111
2015-01-01 02:00:00       234.0    111
...
2015-02-01 00:00:00       123.0    233
...

所以我想要的是从一个 dataframe 合并到另一个。 如果日期相同,则适合该日期的每个日期时间行都会获得另一个值。 不幸的是,我的第二个 dataframe(每天只有一个值)缺少行,所以我不能将每个值都扩展 48 次。 任何帮助表示赞赏。 循环遍历两个数据框并比较日期似乎非常低效。

您可以在df1中创建由 datetimes 中的日期填充的帮助列,然后通过DataFrame.merge将其与左连接合并,最后在必要时删除此列:

df1['timestamp'] = pd.to_datetime(df1['timestamp'])
df2['date'] = pd.to_datetime(df2['date']).dt.date

df1['date'] = df1['timestamp'].dt.date

df = df1.merge(df2, on='date', how='left').drop('date', axis=1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM