2016-11-10 48 views
1

我有以下的列的大熊猫数据帧:如何使用pandas assign创建具有多个条件的新列?

Date, Variable 1, rank_pct 

我试图使用分配创建一个名为“LS”有1,-1,或0在它新列。

  1. 如果rank_pct是< 0.10,把1列LS
  2. 如果rank_pct是> 0.90,放置一个-1在列LS。
  3. 如果rank_pct是其他内容,则在该列中输入0。

我不想用一个for循环中rank_pct列各行进行迭代,并且我已经尝试以下(与返回列真/假:

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

是否有任何命令我可以把括号内为T/F转换成1,-1和0

回答

1

,你可以使用嵌套np.where

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