【问题标题】:how to check if numbers are in range of specific numbers for each row [duplicate]如何检查数字是否在每行的特定数字范围内[重复]
【发布时间】:2021-11-05 05:26:18
【问题描述】:

我有一个数据框

                          dt       id  ...   timestamp prediction
0  2021-04-12 03:17:25+00:00  gu7thj8  ...  2021-04-12   0.386086
1  2021-04-12 03:17:26+00:00  gu7thjl  ...  2021-04-12   0.708179
2  2021-04-12 03:17:28+00:00  gu7thoz  ...  2021-04-12   0.410866
5  2021-04-12 14:22:04+00:00  gu99dqg  ...  2021-04-12   0.416667

如果 0 到 0.40 之间的数字返回 -1 如果 0.40 和 0.60 之间的数字返回 0 如果 0.60 和 1 之间的数字返回 1 我想创建一个额外的列,输出为 -1,0,1

【问题讨论】:

  • 你所说的“数字”是什么意思?这是您的预测专栏吗?
  • 所以我正在查看预测列,如果让我们说 0 到 0.40 -1 之间的 0.386086 将出现在这一行的新列中

标签: pandas


【解决方案1】:

使用np.select:

df['new'] = np.select([df['prediction'].between(0, 0.4, inclusive='left'),
                       df['prediction'].between(0.4, 0.6, inclusive='left'),
                       df['prediction'].between(0.6, 1)],
                      choicelist=[-1, 0, 1])

输出:

>>> df
                         dt       id  timestamp  prediction  new
0 2021-04-12 03:17:25+00:00  gu7thj8 2021-04-12    0.386086   -1
1 2021-04-12 03:17:26+00:00  gu7thjl 2021-04-12    0.708179    1
2 2021-04-12 03:17:28+00:00  gu7thoz 2021-04-12    0.410866    0
5 2021-04-12 14:22:04+00:00  gu99dqg 2021-04-12    0.416667    0

【讨论】:

  • 你能转换成wiki吗,因为被骗了?谢谢。
猜你喜欢
  • 2021-04-01
  • 2017-05-16
  • 1970-01-01
  • 2021-03-15
  • 2015-11-28
  • 1970-01-01
  • 2017-12-31
  • 2014-12-05
  • 1970-01-01
相关资源
最近更新 更多