【问题标题】:pandas get column values using UTC indexpandas 使用 UTC 索引获取列值
【发布时间】:2020-07-29 18:11:33
【问题描述】:

我有一个 pandas 数据框,其索引使用 UTC 时间和一个数据列(在示例中为“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 有一些有用的功能可以处理时间序列,但我还没有找到解决这个问题的功能。

提前谢谢你。

【问题讨论】:

  • 由于您的数据由20 sec 等间隔,您可以使用data_1['value_2'] = data_1['value_1'].shift(-20)
  • 谢谢!这是我一直在寻找的。​​span>

标签: python pandas time-series


【解决方案1】:

您可以将shift 与您要使用的秒数一起使用(此处为 20):

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

或者可以使用 index + 20s 重新索引并使用 to_numpy 获取值:

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

【讨论】:

  • 感谢您的回答。
猜你喜欢
  • 1970-01-01
  • 2016-10-18
  • 1970-01-01
  • 2020-11-16
  • 1970-01-01
  • 1970-01-01
  • 2022-06-29
  • 2019-08-11
  • 1970-01-01
相关资源
最近更新 更多