【问题标题】:get the miniumum value in pandas vectorization获得熊猫矢量化的最小值
【发布时间】:2022-11-16 21:05:41
【问题描述】:

我正在创建一个基于其他 2 个列但也有一个额外条件的列:

df['C'] = min((df['B'] - df['A']) , 0)

新列是 A 和 B 相减,但如果值为负,则必须为 0。不幸的是,上述功能不起作用。谁能帮忙?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您可以使用 df.clip 设置数据的下限(即任何低于 0 的数据都显示为 0):

    df['C'] = (df['B'] - df['A']).clip(lower=0)
    

    注意:如果你不想要任何底片,你最初的想法应该使用 max 而不是 min。负数 < 0,它将保持负数。您最终会将所有正数替换为 0 而不是负数(例如 min(-5, 0) 将输出 -5)

    【讨论】:

    • 谢谢,你是对的。草率的错误
    • @borisvanax 如果这有帮助,如果你能接受它就好了:)
    【解决方案2】:

    使用np.maximum

    df['C'] = np.maximum((df['B'] - df['A']) , 0)
    

    【讨论】:

      猜你喜欢
      • 2020-03-26
      • 2020-10-02
      • 2016-05-02
      • 2019-01-31
      • 1970-01-01
      • 2021-12-28
      • 2015-11-01
      • 1970-01-01
      • 2015-05-07
      相关资源
      最近更新 更多