簡體   English   中英

如何將列表乘以數據幀的每一行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM