pandas получить значения столбцов, используя индекс UT C - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть pandas Dataframe с индексом, использующим время UT C, и столбец с данными (в примере столбец "value_1").

Мой вопрос: как я могу создать новый столбец, в котором каждое значение является значением первого столбца, но через 20 секунд. Используя приведенный ниже пример, я бы получил для первого значения этого второго столбца значение на данный момент "2011-01-01 00:00:20".

import pandas as pd  
import numpy as np

data_1 = pd.DataFrame(index=pd.date_range('1/1/2011', periods = 1000, freq ='S'))
data_1['value_1'] = 100 + np.random.randint(0,1000,size=(1000, 1))
data_1['value_2'] = ??¿¿

Я не знаю, если это было бы возможно, если бы я изменил индекс на другой формат.

Я видел, что pandas имеет некоторые полезные функциональные возможности для работы с временными рядами, но я еще не нашел такой, чтобы решить эту проблему.

Заранее спасибо.

1 Ответ

0 голосов
/ 16 апреля 2020

вы можете использовать shift со значением секунд, которое вы хотите использовать (здесь 20):

data_1['value_2'] = data_1['value_1'].shift(-20)

или можете переиндексировать с индексом + 20 с и получить значения с помощью to_numpy:

data_1['value_2'] = data_1['value_1'].reindex(data_1['value_1'].index+pd.Timedelta(seconds=20)).to_numpy()
...