【问题标题】:Use np.where with a range使用带有范围的 np.where
【发布时间】:2021-06-16 02:30:19
【问题描述】:

我正在尝试使用两个条件,其中一个是一系列数字,如下所示:

df['COL1'] = np.where(df['COL1'] == 4 & (df['COL2'] in range(28,40)), 20, df['COL1'])

当我运行它时,我收到以下错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

只是想知道是否有办法让这个工作或者比使用np.where 更容易的方法

【问题讨论】:

    标签: python pandas numpy


    【解决方案1】:

    您可以使用between 并注意括号:

    np.where((df["COL1"] == 4) & (df["COL2"].between(28, 39)), 20, df["COL1"])
    

    range 不包括端点,between 默认包括,因此为 39。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-22
      • 2020-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多