如何基于两个不同的列创建列目标?

How can I create a column target based on two different columns?

我有以下包含 low_scarcity 和 high_scarcity 列的 DataFrame(一个值处于高稀缺性或低稀缺性):

id low_scarcity high_scarcity
0 When I was five..
1 I worked a lot...
2 I went to parties...
3 1 week ago
4 2 months ago
5 another story..

我想创建另一个列 'target',当 low_scarcity 列中有一个条目时,该值将为 0,而当 high_scarcity 列中有一个条目时,该值将是 1。就像这样:

id low_scarcity high_scarcity target
0 When I was five.. 0
1 I worked a lot... 1
2 I went to parties... 1
3 1 week ago 0
4 2 months ago 0
5 another story.. 1

我尝试先用 0 替换没有值的条目,然后创建一个布尔条件,但是我不能使用 .replace('',0),因为空列不会显示为空值。

假设您的数据框被称为 df 并且某个值处于高稀缺性或低稀缺性,下面的代码行可以做到这一点

import numpy as np    
df['target'] = 1*np.array(df['high_scarcity']!="")

其中 1* 执行布尔值的整数转换。

如果不是这种情况,则应采取更复杂的方法

res = np.array(["" for i in range(df.shape[0])])
res[df['high_scarcity']!=""] = 1
res[df['low_scarcity']!=""] = 0
df['target'] = res