[英]How to multiply each column in a dataframe with a row from another dataframe pandas?
[英]How to multiply a list by each row of a dataframe?
所以我有一個看起來像這樣的數據框:
AMZN FB GOOG NFLX
Date
2017-06-30 NaN NaN NaN NaN
2017-07-03 0.985186 0.983110 0.988963 0.978315
2017-07-05 1.018602 1.012868 1.014476 1.009852
2017-07-06 0.993556 0.989890 0.994494 0.990787
2017-07-07 1.014112 1.017605 1.013125 1.026872
2017-07-10 1.018094 1.013603 1.011115 1.016580
2017-07-11 0.997652 1.011531 1.001389 1.010873
2017-07-12 1.012453 1.023379 1.014773 1.028640
2017-07-13 0.994158 1.002266 1.003528 0.996598
2017-07-14 1.001179 1.004458 1.009323 1.018393
2017-07-17 1.008215 0.998500 0.997312 1.003600
2017-07-18 1.014267 1.019596 1.012565 1.135436
2017-07-19 1.002362 1.007859 1.005687 1.001416
2017-07-20 1.001782 1.002376 0.997178 0.998586
2017-07-21 0.997055 0.999392 1.004927 1.026906
2017-07-24 1.012948 1.009548 1.007627 0.996659
2017-07-25 1.000886 0.995663 0.969766 0.994998
2017-07-26 1.012434 1.001997 0.996950 1.011285
2017-07-27 0.993541 1.029165 0.985535 0.966152
2017-07-28 0.975182 1.011793 1.007965 1.007445
2017-07-31 0.968374 0.981444 0.988285 0.987068
這些數字是其股票代碼的 pct_change。 我還有一個起始市場價值的字典,如下所示:
port2_mkt_val = {'FB':25,
'AMZN':25,
'NFLX':25,
'GOOG':25}
基本上我想要做的是將字典中每只股票各自的市場價值與每一天相乘。 我不能做直接乘法,因為我不希望 dict 成為數據幀的標量,我正在尋找的是取起始市場價值並乘以 7/3/2017 回報然后取(添加它到一個新的數據幀)然后乘以 7/5/2017 回報等等。 我計划遍歷 df 的每一行,但我聽說這是不好的做法。 什么是更好的方法呢?
嘗試:
df = df.fillna(1)
for c in df.columns:
df[c] = df[c].cumprod() * port2_mkt_val[c]
print(df)
印刷:
AMZN FB GOOG NFLX
Date
2017-06-30 25.000000 25.000000 25.000000 25.000000
2017-07-03 24.629650 24.577750 24.724075 24.457875
2017-07-05 25.087811 24.894016 25.081981 24.698834
2017-07-06 24.926145 24.642338 24.943879 24.471284
2017-07-07 25.277903 25.076166 25.271268 25.128876
2017-07-10 25.735281 25.417277 25.552158 25.545513
2017-07-11 25.674855 25.710364 25.587650 25.823269
2017-07-12 25.994584 26.311447 25.965656 26.562848
2017-07-13 25.842723 26.371068 26.057263 26.472481
2017-07-14 25.873192 26.488631 26.300195 26.959389
2017-07-17 26.085740 26.448898 26.229500 27.056443
2017-07-18 26.457905 26.967190 26.559074 30.720859
2017-07-19 26.520399 27.179125 26.710115 30.764360
2017-07-20 26.567658 27.243703 26.634739 30.720859
2017-07-21 26.489416 27.227139 26.765968 31.547435
2017-07-24 26.832401 27.487104 26.970113 31.442035
2017-07-25 26.856175 27.367892 26.154698 31.284762
2017-07-26 27.190105 27.422546 26.074926 31.637810
2017-07-27 27.014484 28.222324 25.697753 30.566934
2017-07-28 26.344038 28.555150 25.902435 30.794504
2017-07-31 25.510882 28.025281 25.598988 30.396270
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.