日内收益

时间:2019-12-03 05:38:04

标签: python dataframe finance

我是python的新手,我需要您的帮助! 我的数据结构enter image description here

此数据是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分钟数据中创建每日收益的新列。

1 个答案:

答案 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)