我有这个df:
Timestamp List Power Energy Status
0 2020-01-01 01:05:50 [5, 5, 5] 7000 15000 online
1 2020-01-01 01:06:20 [6, 6, 6] 7500 16000 online
2 2020-01-01 01:08:30 [0, 0, 0] 5 0 offline
...
不,我想重新采样。使用 .resample 如下:
df2 = df.set_index('timestamp').resample('min').?
我想要 1 分钟内的 df - 间隔。对于每个间隔,我想与如下行匹配:列表:如果状态=在线:间隔的最后一个条目,否则为“0”;Power: if status = online: 区间的平均值 else '0'; 能量:如果状态=在线:间隔的最后一个条目否则'0; 状态:区间的最后状态;
如果df中没有数据,我如何填充.resample输出的NaN值?例如一个区间没有数据,那么df应该如下填充Power = 0; 能量 = 0;状态 = 离线;...
我尝试过这样的事情:
df2 = df.set_index('Timestamp').resample('T').agg({'List':'last',
'Power':'mean',
'Energy':'last',
'Status':'last'})
并得到:
Timestamp List Power Energy Status
0 2020-01-01 01:05 [5, 5, 5] (average of the interval) 15000 online
1 2020-01-01 01:06 [6, 6, 6] (average of the interval) 16000 online
2 2020-01-01 01:07 NaN NaN NaN NaN
3 2020-01-01 01:08 [0, 0, 0] 5 0 offline
预期结果:
Timestamp List Power Energy Status
0 2020-01-01 01:05 [5, 5, 5] (average of the interval) 15000 online
1 2020-01-01 01:06 [6, 6, 6] (average of the interval) 16000 online
2 2020-01-01 01:07 [0, 0, 0] 0 0 offline
3 2020-01-01 01:08 [0, 0, 0] 5 0 offline