Python 如何从偶数行vlaue中减去奇数行值?

Python 如何从偶数行vlaue中减去奇数行值?,python,pandas,dataframe,Python,Pandas,Dataframe,我有下面的数据框。 我想从奇数行值中减去偶数行值。 并创建新的数据帧。 我怎么做 import pandas as pd import numpy as np raw_data = {'Time': [281.54385, 436.55295, 441.74910, 528.36445, 974.48405, 980.67895, 986.65435, 1026.02485]} data = pd.DataFrame(raw_data) data

我有下面的数据框。
我想从奇数行值中减去偶数行值。 并创建新的数据帧。

我怎么做

import pandas as pd
import numpy as np

raw_data = {'Time': [281.54385, 436.55295, 441.74910, 528.36445, 
                     974.48405, 980.67895, 986.65435, 1026.02485]}
data = pd.DataFrame(raw_data)
data
数据帧

    Time
0   281.54385
1   436.55295
2   441.74910
3   528.36445
4   974.48405
5   980.67895
6   986.65435
7   1026.02485
想要的结果

    ON_TIME
0   155.00910
1   86.61535
2   6.19490
3   39.37050

可以使用NumPy索引:

res = pd.DataFrame(data.values[1::2] - data.values[::2], columns=['Time'])

print(res)

        Time
0  155.00910
1   86.61535
2    6.19490
3   39.37050

可以使用shift进行减法运算,然后从第二个元素(索引=1)开始拾取每第二个元素

(data.Time - data.Time.shift())[1::2].rename('On Time').reset_index(drop=True)

outputs:

0    155.00910
1     86.61535
2      6.19490
3     39.37050
Name: On Time, dtype: float64