Вы можете использовать «применить»:
df['income']=df['income'].apply(lambda x: 1 if x>50000 else 0)
Редактировать 1:
Я думаю, что это будет намного быстрее, чем мой предыдущий ответ:
df["income"] = np.where(df["col"] <50000, 0, 1)
Производительность:
%timeit df["income"] = np.where(df["col"] <50000, 0, 1)
1000 loops, best of 3: 256 µs per loop
%timeit df['income']=df['col'].apply(lambda x: 1 if x>50000 else 0)
1000 loops, best of 3: 477 µs per loop
%timeit df['binary'] = (df['col'] > 50000).astype(int)
1000 loops, best of 3: 275 µs per loop