【发布时间】:2019-12-10 04:07:30
【问题描述】:
我有一个数据框df,其数据如下:
Date Var Avg Run_1 Run_2 Run_3
2019-01-01 V1 3.16 3.41 3.84 3.17
2019-01-02 V2 66024 0 1 287
2019-01-03 V1 3.16 3.41 3.84 3.17
2019-01-04 V2 66024 0 1 287
Run_1、Run_2 列一直延伸到 Run_5000。日期是索引列
我正在尝试从上面创建另一个数据框df2,它具有以下内容:
Date V1_M K=Avg_V1*v1_M Val1 Val2 Val3
2019-01-01 1.00 3.16 0.25 0 0
2019-01-02 1.01 3.19 0.22 0 0
2019-01-03 1.02 3.22 0.19 0 0
2019-01-04 1.03 3.25 0.16 0 0
Val1、Val2、Val3、...、Val500 的计算公式为:
=MAX(Run_1_V1 - K, 0)*IF(Run_1_V2 > 0, 0, 1)
Avg_V1 指的是来自df 中平均列的V1 变量
Run_1_V1 引用来自Run_1 列的V1 df
由于Run_1, Run_2, ..Run_500 的 500 列,我目前的方法在此之后陷入困境,因为我不确定如何在不编写显式 for 循环的情况下将上述公式应用于所有 500 列:
v1 = df[df['Variable'] == 'V1']
v2 = df[df['Variable'] == 'V2']
编辑: Val500 的公式:
=MAX(Run_500_V1 - K, 0)*IF(Run_500_V2 > 0, 0, 1)
Run_1_V2 指的是来自Run_1 列的V2 df
【问题讨论】:
-
Val500的公式是什么? -
什么是 Run_1_V2
标签: pandas python-3.5