【发布时间】:2020-06-12 22:16:35
【问题描述】:
我是 Python 新手,这是我的问题:
我有这个数据框:
pf = pd.DataFrame({'Dates':['2018-07-31','2018-07-31','2018-08-31','2018-08-31','2018-09-30','2018-09-30'],
"Name":["Apple",'Faceook','JP Morgan',"Boeing",'Tesla','Disney'],
"Monthly Return":[-0.02,0.11,-0.03, 0.02,-0.08,0.10],
"Total Weight":[0.7,0.2,0.1,0.5,0.3,0.2]})
我的目标是根据每个月的股票、重量和回报来回报我的投资最终价值。
假设我们以 1.000 美元开始。 我正在寻找类似下面的东西,假设每个月剩余的资本是 完全再投资
Dates Name Monthly Return Total Weight P&L Remaining Investment
0 2018-07-31 Apple -0.02 0.7 686
1 2018-07-31 Faceook 0.11 0.3 333 1019
2 2018-08-31 JP Morgan -0.03 0.5 494.21
3 2018-08-31 Boeing 0.02 0.5 519.69 1013.91
4 2018-09-30 Tesla -0.08 0.1 93.28
5 2018-09-30 Disney 0.10 0.9 1003.77 1097.05
我是这样开始的:
A = 1000
pf['P&L']= A * pf['Total Weight'] * (1+pf['Monthly Return'])
但问题在于,这仅适用于第一个月,而其他月份则不然,因为我们没有 起点相同(7 月 31 日为 1000 美元,8 月 31 日为 1019 美元)。
我是否必须创建一个循环?
如果您有解决此问题的任何想法,请随时分享! 谢谢!
【问题讨论】:
标签: python pandas time-series finance