У меня есть 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
dataframe
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 для вычитания, а затем выбрать каждый второй элемент, начиная со второго элемента (index = 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