【问题标题】:How to choose a value from two columns (First and Second) to subtract from another column (Third), based on condition?如何根据条件从两列(第一和第二)中选择一个值以从另一列(第三)中减去?
【发布时间】:2023-04-01 23:49:01
【问题描述】:
enter image description here
总共有 4 列。
VALUE_DIFF 是计算值。这基于列“SECOND”的值是否大于 0,然后从“SECOND”和“BASE_COLUMN”[SECOND - BASE_COLUMN] 中减去列值。如果列“SECOND”为 0,则从“FRIST”和“BASE COLUMN”中减去列值 [FIRST - BASED_COLUMN]
想知道 Pandas 如何在这种情况下执行?
【问题讨论】:
标签:
python-3.x
pandas
dataframe
【解决方案1】:
使用numpy.where:
df['DIFF'] = np.where(df['SECOND'].gt(0), df['SECOND'], df['FIRST']) - df['BASE_COLUMN']
有什么相似之处:
df['DIFF'] = np.where(df['SECOND'].gt(0),
df['SECOND']- df['BASE_COLUMN'],
df['FIRST']- df['BASE_COLUMN'])