Python 多指标熊猫重采样

Python 多指标熊猫重采样,python,pandas,Python,Pandas,我有一个包含关于商店信息的数据框。如下所示: 日期|门店id | x 2019-01-01| 1 | 5 2019-01-01| 2 | 1 2019-01-05| 1 | 3 ... 多索引是[日期,存储id]。请注意,日期不是唯一的。 我想每小时对数据进行一次重采样,但只对日期列中的天数进行重采样,也就是说,我不想在这段时间内每小时都填写一次。此外,我想为创建的每个小时填充x的值。因此,上述示例的预期结果为 日期|门店id | x

我有一个包含关于商店信息的数据框。如下所示:

日期|门店id | x
2019-01-01|    1     |   5
2019-01-01|    2     |   1
2019-01-05|    1     |   3
...

多索引是[
日期
存储id
]。请注意,日期不是唯一的。 我想每小时对数据进行一次重采样,但只对
日期
列中的天数进行重采样,也就是说,我不想在这段时间内每小时都填写一次。此外,我想为创建的每个小时填充x的值。因此,上述示例的预期结果为


日期|门店id | x
2019-01-01 00:00:00|    1     |   5
2019-01-01 01:00:00|    1     |   5
2019-01-01 02:00:00|    1     |   5
...
2019-01-01 23:00:00|    1     |   5
2019-01-01 00:00:00|    2     |   1
2019-01-01 01:00:00|    2     |   1
2019-01-01 02:00:00|    2     |   1
...
2019-01-01 23:00:00|    2     |   1
2019-01-05 00:00:00|    1     |   3
2019-01-05 01:00:00|    1     |   3
2019-01-05 02:00:00|    1     |   3
...
2019-01-05 23:00:00|    1     |   3

定义以下“复制”功能:

def repl(row):
    return pd.DataFrame({'date': pd.date_range(start=row.date,
        periods=24, freq='H'),'store_id': row.store_id, 'x': row.x})
它“复制”源行(参数),返回一系列行 具有给定日期,连续数小时

然后:

  • 重置索引,使所有列都成为“正常”列
  • 将此功能应用于(每行)
  • 将生成的数据帧系列转换为(数据帧)列表
  • 连接结果
执行此操作的代码是:

pd.concat(df.reset_index().apply(repl, axis=1).tolist(), ignore_index=True)