python groupby填充缺失值_groupby timeseries用0填充缺少的数据

给定按“UUT”分组的panda timeseries数据帧df

Out[64]:

UUT Sum

Date_Time

2017-04-28 18:48:16 uut-01 2

2017-04-28 18:48:18 uut-02 2

2017-04-28 18:48:19 uut-03 2

我想使用reindex在1秒的时间间隔内创建一个时间序列,并用0值填充空白,仅用于列和,如下所示:

^{pr2}$

我使用了reindex,但它用0填充了“UUT”和“Sum”。

如何用UUT名称而不是零来填充UUT列缺少的时间戳,以及只将0填充到“Sum”列?在idx = pd.date_range('2017-04-28 18:48:16', '2017-04-28 18:48:19', freq='1s')

grouped = df.groupby('UUT')

grouped.get_group('uut-01').reindex(idx, fill_value=0)

grouped.get_group('uut-01')

2017-04-28 18:48:16 uut-01 2

2017-04-28 18:48:17 0 0

2017-04-28 18:48:18 0 0

2017-04-28 18:48:19 0 0

根据凯尔的回答,我终于成功了:df = df.set_index([df.index, 'UUT'])

idx = pd.MultiIndex.from_product(df.index.levels, names=['Date_Time', 'UUT'])

df = df.reindex(index=idx, fill_value=0)

df.reset_index(level=[1]) #convert back to single index

grouped = df.groupby('UUT')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值