我在 Pandas 中有以下数据框
prod S X
a 10 123
b 20 150
b 30 140
a 40 100
Formula for product a and b is as follows
a = IF(S>X, (0.6/100(S-X)),0)
b = IF(S>X, (0.2/100(S-X)),0)
如何根据现有数据框中产品 a 和 b 的公式计算新列
最佳答案
您可以使用 np.where
然后使用 np.select
。来自@AnnaIliukovich-Strakovskaia 的数据。
a = np.where(df['S'] > df['X'], 0.6/100*(df['S'] - df['X']), 0)
b = np.where(df['S'] > df['X'], 0.2/100*(df['S'] - df['X']), 0)
df['result'] = np.select([df['prod'].eq('a'), df['prod'].eq('b')], [a, b], np.nan)
print(df)
prod S X result
0 a 10 123 0.00
1 b 20 150 0.00
2 b 30 140 0.00
3 a 140 100 0.24
关于python - np.where 和 if 在 Pandas 中的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52466532/