如何使用pandas assign创建具有多个条件的新列?

时间:2016-11-10 23:42:54

标签: python pandas assign

我有一个包含以下列的pandas数据框:

Date, Variable 1, rank_pct

我正在尝试使用assign来创建一个名为" ls"的新列。其中包含1,-1或0。

  1. 如果rank_pct <0.10,则在ls
  2. 列中加1
  3. 如果rank_pct> 0.90,则在ls。
  4. 列中加上-1
  5. 如果rank_pct是其他任何内容,请在列中添加0。
  6. 我不想使用for循环来遍历rank_pct列中的每一行,我已经尝试过以下内容(它返回一个True / False列:

    data = data.assign(ls= data['rank_pct']<.10)
    

    我可以在括号内放置任何命令将T / F转换为1,-1和0吗?

1 个答案:

答案 0 :(得分:1)

您可以使用嵌套的np.where

data.assign(ls=np.where(data.rank_pct<.1, 1,
                        np.where(data.rank_pct>.9, -1, 0)))