我有一个包含以下列的pandas数据框:
Date, Variable 1, rank_pct
我正在尝试使用assign来创建一个名为" ls"的新列。其中包含1,-1或0。
我不想使用for循环来遍历rank_pct列中的每一行,我已经尝试过以下内容(它返回一个True / False列:
data = data.assign(ls= data['rank_pct']<.10)
我可以在括号内放置任何命令将T / F转换为1,-1和0吗?
答案 0 :(得分:1)
您可以使用嵌套的np.where:
data.assign(ls=np.where(data.rank_pct<.1, 1,
np.where(data.rank_pct>.9, -1, 0)))