熊猫根据其他两列的划分创建新列

时间:2020-09-27 17:16:18

标签: python pandas

嗨,我有以下df,其中我希望新列为B / A的结果,除非B == 0,在这种情况下取​​C&D的平均值并除以A,所以((C + D)/ 2 )/ A。

我知道该怎么做df["New Column"] = df["B"]/df["A"],但我不确定您将如何按照我的意愿去做。我是否需要遍历df的每一行并使用条件if语句?

A   B   C   D   New Column  Desired Column
5   3   2   4   0.6                 0.6
6   2   2   3   0.333         0.333333333
8   4   3   4   0.5                 0.5
9   0   3   4   0             0.388888889
14  3   3   4   0.214          0.214285714
5   0   2   4   0                   0.6

1 个答案:

答案 0 :(得分:2)

您在这里:

import numpy as np
df["new Column"] = np.where(df["B"] != 0, df["B"]/df["A"], (df["C"]+df["D"])/2/df["A"])