如果单元格不为空,if - else 函数计算值

If - else function to calculate value if cell isn't empty

我需要根据导入的 Excel 文件中的数据进行计算。如果 Col1 中有一个值,则公式应从 Col1 中获取值并将其与 Col4 相乘。如果 Col1 中的值为空,则应从 Col2 中获取值并将其与 Col4 相乘。完成计算的结果应添加到新列中。

目前它适用于我计算的第二部分,但代码无法识别 Col1 中是否有值。就像,它只需要第一行作为参考的所有其他数据,因为 Col1 中没有任何内容。

这是我当前的代码:

if merged_data['Col1'].isna().any():
    merged_data['Col4'] = (merged_data['Col2'] / merged_data['Col3'])
else:
    merged_data['Col4'] = (merged_data['Col1'] / merged_data['Col3'])

感谢您的帮助。

使用numpy.where:

import numpy as np
merged_data["new col"] = np.where(
    merged_data["Col1"].isna(),
    merged_data["Col2"] * merged_data["Col4"],
    merged_data["Col1"] * merged_data["Col4"],
)