我有以下数据框,如果数据框的值不为0,我想用1还是用另一个数据框列。
答案 0 :(得分:1)
您可以使用np.where:
df['abc_new'] = np.where(df.abc.eq(0), df.xyz, df.xyz.div(df.abc))
timestamp device abc xyz abc_new
0 2019-11-08 device1 1000 2000 2.000000
1 2019-11-09 device1 2000 3000 1.500000
2 2019-11-10 device1 0 5000 5000.000000
3 2019-11-11 device1 0 5000 5000.000000
4 2019-11-12 device1 5000 2000 0.400000
5 2019-11-13 device1 6000 1000 0.166667
或者您可以使用:
df.xyz.div(df.abc.add(df.abc.eq(0)))