给定按“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')