• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

熊猫concat多个时间序列与分组和延长缺失数据

python 来源:user97662 14次浏览

我有从CSV文件导入多个时间序列数据。 这些数据都有时间戳,但时间戳并不总是一致的:熊猫concat多个时间序列与分组和延长缺失数据

时间系列1:

     UUT Data 
DateTime           
2017-11-21 18:54:31 uut1 1 
2017-11-22 02:26:48 uut1 2 
2017-11-22 10:19:44 uut1 3 
2017-11-22 15:11:28 uut1 6 
2017-11-22 23:21:58 uut1 7 

时间系列2:

     UUT Data 
DateTime 
2017-11-21 18:47:29 uut2 1 
2017-11-22 02:26:49 uut2 2 
2017-11-22 10:19:44 uut2 3 
2017-11-22 15:17:47 uut2 4 
2017-11-22 23:21:58 uut2 5 
2017-11-23 07:10:56 uut2 6 
2017-11-23 15:15:48 uut2 7 
2017-11-24 12:16:58 uut2 9 

我可以用concat函数加入他们的行列然而,我怎样才能填满前一个值的空时隙,以便让决赛桌看起来类似于:

DateTime   UUT Data 
11/21/17 18:47:29 uut1 1 
11/21/17 18:54:31  1 
11/22/17 2:26:48  2 
11/22/17 2:26:49  2 
11/22/17 10:19:44  3 
11/22/17 15:11:28  6 
11/22/17 15:17:47  6 
11/22/17 23:21:58  7 
11/23/17 7:10:56  8 
11/23/17 15:15:48  8 
11/23/17 15:22:16  9 
11/24/17 12:16:58  11 
11/21/17 18:47:29 uut2 1 
11/21/17 18:54:31  1 
11/22/17 2:26:48  1 
11/22/17 2:26:49  2 
11/22/17 10:19:44  3 
11/22/17 15:11:28  3 
11/22/17 15:17:47  4 
11/22/17 23:21:58  5 
11/23/17 7:10:56  6 
11/23/17 15:15:48  7 
11/23/17 15:22:16  7 
11/24/17 12:16:58  9 

,或者这样:

DateTime   uut1 uut2 
11/21/17 18:47:29 1 1 
11/21/17 18:54:31 1 1 
11/22/17 2:26:48 2 1 
11/22/17 2:26:49 2 2 
11/22/17 10:19:44 3 3 
11/22/17 15:11:28 6 3 
11/22/17 15:17:47 6 4 
11/22/17 23:21:58 7 5 
11/23/17 7:10:56 8 6 
11/23/17 15:15:48 8 7 
11/23/17 15:22:16 9 7 
11/24/17 12:16:58 11 9 

我的最终目标是能够绘制两个uut1和uut2数据在单一时间序列图。

===========解决方案如下:

找到索引与index.union,reindex数据帧的联合,concat然后pivot以获得您想要的输出。

i = df1.index.union(df2.index) 
df1 = df1.reindex(i).reset_index().bfill().ffill() 
df2 = df2.reindex(i).reset_index().bfill().ffill() 

df = pd.concat([df1, df2]).pivot('DateTime', 'UUT', 'Data') 
df 

UUT     uut1 uut2 
DateTime      
2017-11-21 18:47:29 1.0 1.0 
2017-11-21 18:54:31 1.0 2.0 
2017-11-22 02:26:48 2.0 2.0 
2017-11-22 02:26:49 2.0 2.0 
2017-11-22 10:19:44 3.0 3.0 
2017-11-22 15:11:28 6.0 4.0 
2017-11-22 15:17:47 6.0 4.0 
2017-11-22 23:21:58 7.0 5.0 
2017-11-23 07:10:56 7.0 6.0 
2017-11-23 15:15:48 7.0 7.0 
2017-11-24 12:16:58 7.0 9.0 

最后,绘制,使用 –

df.plot(subplots=True, drawstyle='steps-post') 
plt.show() 

enter image description here


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)