我目前正在为我的论文开展项目,并且正在使用Pandas面板数据,其中包含多个公司的价格分别跨越多个月。
我想做的是:
此刻面板数据看起来像这样:
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)。鉴于此,请创建一个具有年化收益率和相应行情自动收录器的新熊猫数据框。
在此先感谢您的帮助:)
答案 0 :(得分:0)
这是年收益的一种解决方案,对于熊猫来说,有很多方法可以做同样的事情。这是版本之一。如果您需要进一步说明,请告诉我。其中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)