根据日期时间索引熊猫每12小时合并数据帧和填充列?

时间:2018-03-29 17:45:17

标签: python pandas dataframe

我有2个数据框:

" DF"一个有日期时间索引:

enter image description here

" DF2"对于相同的日期和第一个数据帧,每12小时有一列:

enter image description here

我正在尝试保留12小时列,并且每12小时之间合并一次数据框填充值。

整天都可以通过创建基于索引的日期列来合并它:

df2['day'] = df.index.date

然后合并两者:

df3 = pd.merge(df2, df,
         on = ['day','short_id'],
         how = 'inner')

但是,我找不到为每12小时创建一个列并在中间填充数据的解决方法,因为这只能工作几天,而不是半天

df2['day'] = df.index.date

2 个答案:

答案 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

如果您需要有关参数的帮助:发布代码以生成数据框,以便我们可以复制您的方案。