【问题标题】:getting difference and eliminating gap time series data using pandas and numpy使用 pandas 和 numpy 获取差异并消除时间序列数据
【发布时间】:2013-09-18 11:06:34
【问题描述】:

我是 Python 相关环境的初学者,在使用时间序列数据时遇到问题。

以下是我每天的Close 1分钟数据。

    2011-11-01, 248.70, 248.85, 249.15, ... 250.15, 250.60, 250.55
    2011-11-02, 245.80, 246.35, 245.80, ...
    ...
  1. 我想根据“昨天的最后收盘价”更改时间序列值,如下所示:

    2011-11-01, (248.70 - 248.70), (248.85 - 248.70), (249.15 - 248.70), ... 250.15 - 248.70, 250.60 - 248.70, 250.55 - 248.70
    2011-11-02, (245.80 - 250.55), (246.35 - 250.55), (245.80 - 250.55), ...
    ...
    

在上例的第一行,248.70(即“今日开盘”值)用作减法元素,因为不可能得到“昨日收盘”值。

  1. 我想消除昨天和今天之间的 GAP:

    2011-11-01, 248.70, 248.85, 249.15, ... 250.15, 250.60, 250.55
    2011-11-02, 245.80 - (245.80 - 250.55), 246.35 - (245.80 - 250.55), 245.80 - (245.80 - 250.55), ...
    ...
    

任何帮助将不胜感激。

提前谢谢你,

【问题讨论】:

    标签: python numpy pandas time-series


    【解决方案1】:

    假设您已将这些逗号分隔值加载到按日期索引的 DataFrame 中,每分钟有一列。最后一列将是最后的收盘价。比如:

    df = read_csv('filename.csv', header=None, index_col=0, parse_dates=0)
    

    要将今天的值与昨天的最后一个值进行比较,请取最后一列并使用 shift 来“向上”查找一行。

    last_column = df.columns[-1]
    df1 = df - df[last_column].shift(1) # last close value of yesterday
    

    您问题的第二部分类似:

    first_column = df.columns[0]
    df2 = df - (df[first_column] - df[last_column].shift(1))
    

    【讨论】:

    • 谢谢丹!我去看看!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 2014-03-01
    • 2020-10-10
    • 1970-01-01
    • 2013-09-19
    • 2021-02-25
    • 1970-01-01
    相关资源
    最近更新 更多