python - pandas 使用用户定义的时间间隔重新采样

标签 python pandas dataframe resampling

我有一个 30 分钟时间间隔的 OHLC 数据帧。

2017-04-30 11:00:00-04:00  239.06  239.39  239.04  239.33      28
2017-04-30 11:30:00-04:00  239.01  239.22  238.91  239.03      28
2017-04-30 12:00:00-04:00  239.02  239.28  238.99  239.03      29
2017-04-30 12:30:00-04:00  238.94  239.08  238.84  239.03      28
2017-04-30 13:00:00-04:00  239.01  239.11  238.93  238.94      27
2017-04-30 13:30:00-04:00  238.94  239.08  238.86  239.03      12

我想对每小时柱中的数据进行重新采样,但有没有办法将每小时柱定义为每 30 分钟结束一次,例如 9:30-10:309:00 -10:00

最佳答案

要重新采样到采样周期的偏移量,请使用 base 参数 ( resample )

base : int, default 0

For frequencies that evenly subdivide 1 day, the “origin” of the aggregated intervals. For example, for ‘5min’ frequency, base could range from 0 through 4. Defaults to 0

代码:

df = df.resample('1H', base=0.5).last()

测试代码:

df = pd.read_fwf(StringIO(u"""
    Date                      O       H       L       C
    2017-04-30T11:00:00-0400  239.06  239.39  239.04  239.33
    2017-04-30T11:30:00-0400  239.01  239.22  238.91  239.03
    2017-04-30T12:00:00-0400  239.02  239.28  238.99  239.03
    2017-04-30T12:30:00-0400  238.94  239.08  238.84  239.03
    2017-04-30T13:00:00-0400  239.01  239.11  238.93  238.94
    2017-04-30T13:30:00-0400  238.94  239.08  238.86  239.03"""
), header=1)
df['Date'] = pd.to_datetime(df['Date'])
df = df.set_index('Date')

df = df.resample('1H', base=0.5).last()
print(df)

结果:

                          O       H       L       C
Date                                               
2017-04-30 14:30:00  239.06  239.39  239.04  239.33
2017-04-30 15:30:00  239.02  239.28  238.99  239.03
2017-04-30 16:30:00  239.01  239.11  238.93  238.94
2017-04-30 17:30:00  238.94  239.08  238.86  239.03

关于python - pandas 使用用户定义的时间间隔重新采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43709608/

相关文章:

python - 将 Jinja 的 groupby 过滤器与元组一起使用

python - 如何在 EC2 服务器上连续运行 Python 脚本?

python - "cumsum"制作标志、计算计数和形成组的逻辑是什么?

r - 通过 ID(不是行号)和列名识别数据框中 NA 值的位置

python - 如何用按顺序开始的自然数填充 nan 列?

python - Google Colab 在文本框中插入保存的图形

python __setattr__ 的行为类似于 __getattr__

python - 加载文件中的错误 ylabels

python - 根据另一列中的先前条件添加行

pandas - Pandas DataFrame 的空副本