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


慕码人8056858
浏览 83回答 1
1回答

慕村225694

干得好:import numpy as np df["new Column"] = np.where(df["B"] != 0, df["B"]/df["A"], (df["C"]+df["D"])/2/df["A"])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python