此数据是2001年1月2日至2019年12月31日之间5分钟的盘中数据。从数据中可以看到,0表示日期,2表示股票价格。 每天例如2001/01/02都有79观察。 首先,我需要将每日收益创建为新列。通常我正在处理每日数据,并且每天的日志返回如下
def lr(x):
return np.log(x[1:]) - np.log(x[:-1])
如何从5分钟数据中创建每日收益的新列。
答案 0 :(得分:0)
如果将数据加载到pandas.DataFrame
中,则可以使用df.groupby()
,然后以最小的更改应用lr
函数:
df = pd.read_excel('path/to/your/file.xlsx', header=None,
names=['Index', 'Date', 'Some_var', 'Stock_price'])
但是,关键是要决定如何从5分钟的数据中生成每日值。我不是股票专家,但是我想您想使用每天的最后一个值来表示股票价值。如果是这样,您可以使用
daily_values = df.groupby('Date')['Stock_price'].agg('last')
,然后应用您的lr
函数以获取回报
lr(daily_values)