【问题标题】:How can I use pandas assign to create a new column with multiple conditions?如何使用 pandas 分配创建具有多个条件的新列?
【发布时间】:2016-11-10 23:42:53
【问题描述】:

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

Date, Variable 1, rank_pct

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

  1. 如果rank_pct
  2. 如果 rank_pct >0.90,请在 ls 列中添加 -1。
  3. 如果 rank_pct 是其他值,请在列中输入 0。

我不想使用 for 循环来遍历 rank_pct 列中的每一行,并且我已经尝试了以下方法(返回 True/False 列:

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

我可以在括号内输入任何命令来将 T/F 转换为 1、-1 和 0 吗?

【问题讨论】:

    标签: python pandas assign


    【解决方案1】:

    你可以使用嵌套的np.where:

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

    【讨论】:

      猜你喜欢
      • 2017-12-19
      • 1970-01-01
      • 2022-08-17
      • 2020-11-09
      • 1970-01-01
      • 1970-01-01
      • 2021-04-30
      • 1970-01-01
      相关资源
      最近更新 更多