pandas 预测到单个列的百分比变化

ezykj2lf  于 2024-01-04  发布在  其他
关注(0)|答案(1)|浏览(110)

我想知道如何在给定的起始量上预测百分比变化。
为了清楚起见,我有一个包含每个日期每日百分比变化的图表。我想将此百分比变化应用于起始值(在本例中为100),以查看其随时间的演变。我已经自定义了每日变化,以简化计算如下:自定义变化= 1 +每日变化/100
金额为100(第一行最后一列是给定的),这是我找不到公式得到的结果列
Expected Result :
我已经尝试了许多方法与Pandas,但它看起来不想执行转移金额列。
我向函数传递一个包含日期和每日变化百分比的Pandas Serie,然后计算每日Var,如下所示:df_col_actif_var['daily_var_custo'] = (1 + df_col_actif_var/100)
最后,我尝试构建包含预期结果的最后一列:df_col_actif_var['std'] = df_col_actif_var['std'].shift(1) * (df_col_actif_var['daily_var_custo'])
但不起作用
请帮帮忙!

wr98u20j

wr98u20j1#

IIUC,您可以用途:

  1. df['Amount'] = (df['Daily Variation']
  2. .shift(-1).cumsum()
  3. .add(100).shift(1, fill_value=100))
  4. print(df)
  5. # Output
  6. Date Daily Variation Customized Variation Amount
  7. 0 Day 1 -0.75 0.9925 100.00
  8. 1 Day 2 1.02 1.1020 101.02
  9. 2 Day 3 -0.19 0.9981 100.83
  10. 3 Day 4 -0.42 0.9958 100.41
  11. 4 Day 5 -0.53 0.9947 99.88

字符串
一步一步:

  1. # shift to remove -0.75
  2. >>> out = df['Daily Variation'].shift(-1)
  3. 0 1.02
  4. 1 -0.19
  5. 2 -0.42
  6. 3 -0.53
  7. 4 NaN
  8. # compute cumulative sum
  9. >>> out = out.cumsum()
  10. 0 1.02
  11. 1 0.83
  12. 2 0.41
  13. 3 -0.12
  14. 4 NaN
  15. # add your base value 100
  16. >>> out = out.add(100)
  17. 0 101.02
  18. 1 100.83
  19. 2 100.41
  20. 3 99.88
  21. 4 NaN
  22. # shift back to align values and fill the first row to your base value
  23. >>> out = out.shift(1, fill_value=100)
  24. 0 100.00
  25. 1 101.02
  26. 2 100.83
  27. 3 100.41
  28. 4 99.88


另一种方法,但我更喜欢链方法:-)。然而,数学更简单。

  1. df['Amount'] = df.loc[1:, 'Daily Variation']
  2. df.loc[0, 'Amount'] = 100
  3. df['Amount'] = df['Amount'].cumsum()

展开查看全部

相关问题