Python 3.x 将一列中的值乘以其他列中的值,忽略熊猫中的零而不进行硬记录?

Python 3.x 将一列中的值乘以其他列中的值,忽略熊猫中的零而不进行硬记录?,python-3.x,pandas,Python 3.x,Pandas,我想用一列中的值乘以其他列中的值。 我通常使用以下公式指定列来乘以使用的值: e、 g.dataframe.column1*dataframe.column2 以下是示例数据帧: 我想将值相乘,如下所示: 专业费率X定义点2 继续到其他列,如DEF_POINT3、DEF_POINT4等。。 上面的每一列都有nan值,我不想与PRO_RATE列中的值相乘 预期结果: 示例数据帧: 因为我是熊猫和python新手,我不知道如何编写函数/循环来执行上述任务,而不进行硬编码? 鉴于问题中提供的数据框,请

我想用一列中的值乘以其他列中的值。 我通常使用以下公式指定列来乘以使用的值: e、 g.dataframe.column1*dataframe.column2

以下是示例数据帧:

我想将值相乘,如下所示:

专业费率X定义点2 继续到其他列,如DEF_POINT3、DEF_POINT4等。。 上面的每一列都有nan值,我不想与PRO_RATE列中的值相乘

预期结果:

示例数据帧:

因为我是熊猫和python新手,我不知道如何编写函数/循环来执行上述任务,而不进行硬编码? 鉴于问题中提供的数据框,请帮助…

: 输出:
如果你乘以NaN,你会得到一个NaN。。。那么/df.filterlike='DEF_'。muldf.PRO_RATE,axis=0可能会做你想做的事…?@JonClements我喜欢这样!但是,OP不会在行之间相乘。似乎每列都向下移动了NaN值的数量。
data = {'PRO_RATE':[.5,.3,.6,.7],
        'DEF_POINT1':[1,7,8,9],
        'DEF_POINT2':[np.nan,2,3,4],
        'DEF_POINT3':[np.nan,np.nan,10,15],
        'DEF_POINT4':[np.nan,np.nan,np.nan,20]}
df = pd.DataFrame(data)
for column in df.columns[2:]:
    isnull_count = (df[column].isnull().sum())
    calc_values = df.PRO_RATE * df[x].shift(-isnull_count)
    calc_values = calc_values.dropna().tolist()  # optional line
    calc_values = [round(x, 2) for x in calc_values]  # optional line
    print(f'{x}: {calc_values}')
DEF_POINT2: [1.0, 0.9, 2.4]
DEF_POINT3: [5.0, 4.5]
DEF_POINT4: [10.0]