3

我是 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), ...
    ...
    

任何帮助将不胜感激。

先感谢您,

4

1 回答 1

2

假设您已将这些逗号分隔值加载到按日期索引的 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))
于 2013-09-13T18:05:57.920 回答