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)