我有一个数据集,里面包含了2010 年1月至2019 年9月期间交通银行A股与4 个股票指数(上证综指、上证 50 指数、上证 180 指数、沪深 300 指数)的部分周收盘价格数据,请给我计算其5只股票周收益率的数据框(收益率用自然对数计算)的代码,谢谢
时间: 2024-12-20 17:15:44 浏览: 42
为了帮助您计算数据集中的5只股票周收益率并转换为自然对数,我们可以使用Python的pandas库来进行处理。首先假设您的数据集已经保存在一个CSV文件中,名为stock_prices.csv
,并且有以下列名:date
, traffic_bank
, sh_composite
, sz_50
, sz_180
, hs_300
。
以下是代码示例:
import pandas as pd
import numpy as np
# 加载数据
df = pd.read_csv('stock_prices.csv')
# 将日期设置为索引,并将时间序列转换为每周数据
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
weekly_df = df.resample('W').last() # 使用最后一次收盘价代表一周内的价格
# 计算周收益率(对数收益率)
def log_return(row):
non_zero_returns = row[row > 0]
if len(non_zero_returns) == 0:
return np.nan
else:
return np.log(row / non_zero_returns.iloc[0])
# 应用到所有股票
weekly_df['log_return'] = weekly_df.apply(log_return, axis=1)
# 现在每周收益率存储在'dlog_return'列中
print(weekly_df)
这个代码会计算每只股票的周收益率(对数形式),并保留NaN值,如果某一周的数据全部为零则无法计算对数收益率。
相关推荐


















