计算中国许多公司的月度和年度股票回报率

2024-03-29 11:13:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在为我的论文做一个项目,我正在使用熊猫面板数据,其中包含多家公司,它们各自的价格跨越多个月

我想做的是:

  1. 要计算每个股票的月度回报
  2. 将这些月度回报按年计算,这样我们就可以看到每只股票的年度业绩

目前的面板数据如下所示:

Date       Ticker       Price 
03/2003    AAPL         30.214 
04/2003    AAPL         32.456 
05/2003    AAPL         38.002
06/2003    AAPL         37.328 
...        ...           ...   
08/2010    TSLA         238.421 
09/2010    TSLA         245.332 
10/2010    TSLA         239.713
...        ...           ...  

因此,我想在侧面创建一个列,显示每月的股价变化([t2/t1]-1)。有鉴于此,创建一个新的熊猫数据框,其中包含年度化收益和相应的股票代码

提前感谢您的帮助:)


Tags: 数据项目面板date公司价格price股票
1条回答
网友
1楼 · 发布于 2024-03-29 11:13:58

这里有一个解决年度回报的办法,熊猫也有很多方法来做同样的事情。这是其中一个版本。如果您需要进一步的澄清,请告诉我。其中df是包含面板数据的数据帧

dfYearly = df.groupby(["Ticker", "Year"])["Date"].agg(["min", "max"]).reset_index()
dfYearly = dfYearly.merge(df[["Ticker", "Date", "Price"]], how="left", left_on=["Ticker", "min"], right_on=["Ticker","Date"])
dfYearly.rename(columns={"Price": "Price-Begin"}, inplace=True)
dfYearly.drop("Date", axis=1, inplace=True)
dfYearly = dfYearly.merge(df[["Ticker", "Date", "Price"]], how="left", left_on=["Ticker", "max"], right_on=["Ticker","Date"])
dfYearly.rename(columns={"Price": "Price-End"}, inplace=True)
dfYearly.drop(["Date", "min", "max"], axis=1, inplace=True)
dfYearly["Annual Return"] = np.round(dfYearly["Price-End"].values / dfYearly["Price-Begin"].values - 1, 3)

相关问题 更多 >