我的数据框看起来像
Time, Id A B C
2016-06-15 08:09:26.212962 115516 3 3.238 7.790000
2016-06-15 08:10:13.863304 115517 3 0.000 8.930000
2016-06-15 08:11:02.236033 115518 3 0.000 9.090000
2016-06-15 08:11:52.085754 115519 3 0.000 9.420000
如果我像
那样申请分组grouped = df.groupby(pd.TimeGrouper("5Min"), as_index=False)
我得到的群组名称和群组如下:
2016-06-15 08:05:00
2016-06-15 08:09:26.212962
2016-06-15 08:10:00
2016-06-15 08:10:13.863304
2016-06-15 08:11:02.236033
2016-06-15 08:11:52.085754
2016-06-15 08:25:00
2016-06-15 08:25:41.827770
所以我的问题是我如何重新采样上面形成的组名称并用“无”填充不存在的组来获得类似的内容:
2016-06-15 08:05:00
2016-06-15 08:09:26.212962
2016-06-15 08:10:00
2016-06-15 08:10:13.863304
2016-06-15 08:11:02.236033
2016-06-15 08:11:52.085754
2016-06-15 08:15:00
2016-06-15 08:20:00
2016-06-15 08:25:00
2016-06-15 08:25:41.827770
这可以形成为数据帧吗?
此致
答案 0 :(得分:0)
最简单的方法是将它们组成另一个DataFrame。使用pd.concat
frames, names = [], []
grouped = df.groupby(pd.TimeGrouper("5Min"), as_index=False)
for name, group in grouped:
names.extend([name])
frames.extend([group])
pd.concat(frames, keys=names)
答案 1 :(得分:0)
这是我现在能想到的最好的。
df.set_index('Time').groupby(pd.TimeGrouper('5T')) \
.apply(lambda df: df.reset_index()).unstack() \
.resample('5T').last().stack(dropna=False)