我有2个数据框:
" DF"一个有日期时间索引:
" DF2"对于相同的日期和第一个数据帧,每12小时有一列:
我正在尝试保留12小时列,并且每12小时之间合并一次数据框填充值。
整天都可以通过创建基于索引的日期列来合并它:
df2['day'] = df.index.date
然后合并两者:
df3 = pd.merge(df2, df,
on = ['day','short_id'],
how = 'inner')
但是,我找不到为每12小时创建一个列并在中间填充数据的解决方法,因为这只能工作几天,而不是半天
df2['day'] = df.index.date
答案 0 :(得分:3)
您还可以轻松地将日期时间列舍入到合理频率,在这种情况下每12小时一次。
import pandas as pd
test = pd.DataFrame({'time': ['2017-07-28 20:17:56','2017-07-28 10:17:56', '2017-07-28 00:17:56']})
test['time'] = pd.to_datetime(test.time)
test.time.dt.round('12h')
0 2017-07-29 00:00:00
1 2017-07-28 12:00:00
2 2017-07-28 00:00:00
Name: time, dtype: datetime64[ns]
答案 1 :(得分:2)
我认为您正在寻找merge_asof。
如果您需要有关参数的帮助:发布代码以生成数据框,以便我们可以复制您的方案。