在python中的pandas数据框上创建多个移位列的最佳方法

时间:2018-12-11 18:10:44

标签: python pandas shift

我是python新手-所以请多多包涵。

我正在尝试在数据框中创建一组移位列。例如,我有一个DataFrame df:

                    heading      speed
time                
2018-09-03 14:53:02   195.0   0.000000
2018-09-03 14:53:07   195.0   0.416667
2018-09-03 14:53:12   195.0   0.138889
2018-09-03 14:53:17   195.0   0.277778
2018-09-03 14:53:22   195.0   0.972222
2018-09-03 14:53:27   289.0   1.944444

我想结束:

                    heading      speed   prev_heading   prev_speed
time                
2018-09-03 14:53:02   190.0   0.000000   NaN            NaN
2018-09-03 14:53:07   195.0   0.416667   190.0          0.000000
2018-09-03 14:53:12   195.0   0.138889   195.0          0.416667
2018-09-03 14:53:17   195.0   0.277778   195.0          0.138889
2018-09-03 14:53:22   195.0   0.972222   195.0          0.277778
2018-09-03 14:53:27   289.0   1.944444   195.0          0.972222

我知道如何使用单个列进行操作:

df['prev_heading'] = df['heading'].shift(1)

但是有一种方法可以同时对多个列执行以下操作:

df['prev_heading', 'prev_speed'] = df['heading', 'speed'].shift(1)

如果必须多次运行shift命令,似乎效率很低,因为我想尽可能地解析一次数据帧。

任何帮助将不胜感激。

0 个答案:

没有答案