具有多个时间序列的python数据帧中的返回计算

具有多个时间序列的python数据帧中的返回计算,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个没有格式索引的数据帧 stock_id price timestamp .. .. .. 因此,在单个数据帧中对多个时间序列进行编码 我想计算日志返回(=log S_I+1-log S_I)并将该信息添加到此数据帧 到目前为止,我知道如何计算一只股票的价格 df.set_index(['stock_id', 'timestamp'], inplace = True) logpctchange = df0.loc[0].logp - df0.

我有一个没有格式索引的数据帧

stock_id    price   timestamp
..           ..         ..
因此,在单个数据帧中对多个时间序列进行编码

我想计算日志返回(
=log S_I+1-log S_I
)并将该信息添加到此数据帧

到目前为止,我知道如何计算一只股票的价格

df.set_index(['stock_id', 'timestamp'], inplace = True)
logpctchange = df0.loc[0].logp - df0.loc[0].log1p.shift(1)
但是,我们如何才能将这些信息写回数据帧,并对每个
股票id系统地这样做呢?

您有
groupby().shift()
来按组获取数据的移位。然后,只需正常分割和记录:

df['new_col' = np.log(df.groupby('stock_id')['price'].shift()/df['price'])

因此,关键是:1)df.groupby('stock_id')['price'].shift()
将移位应用于固定的
stock_id
的每个单独系列,然后2)将在两个索引
stock_id
timestamp
@nicolas上对齐执行分割。