使用pandas和numpy获取差异并消除时间序列数据中的间隙

3
我是Python相关环境的初学者,我在使用时间序列数据时遇到了问题。
以下是我每天的一分钟收盘价数据。
    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. I'd like to change time series values based on 'last close value of yesterday' like the following:

    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. I'd like to eliminate GAP between yesterday and today:

    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), ...
    ...
    
任何帮助将不胜感激。
提前致谢,
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))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接