Python 通过if语句为每行分配标签

Python 通过if语句为每行分配标签,python,python-3.x,windows,row,Python,Python 3.x,Windows,Row,我得到了以下数组: array([['A', 0.05], ['B', 0.09], ['C', 0.13]] 我想创建一个新列,并根据第二列为项目a、B和C指定一个标签。 如果项目高于0.10,则必须获得标签“2”。如果低于0.10,则必须获得标签“1”。因此,我期望的输出是: array([['A', 0.05,'1'], ['B', 0.09,'1'], ['C', 0.13,'2']] 如何才能做到这一点?您可以结合使用:

我得到了以下数组:

array([['A', 0.05],
       ['B', 0.09],
       ['C', 0.13]]
我想创建一个新列,并根据第二列为项目a、B和C指定一个标签。 如果项目高于0.10,则必须获得标签“2”。如果低于0.10,则必须获得标签“1”。因此,我期望的输出是:

 array([['A', 0.05,'1'],
        ['B', 0.09,'1'],
        ['C', 0.13,'2']]
如何才能做到这一点?

您可以结合使用:

输出

[['A' '0.05' '1']
 ['B' '0.09' '1']
 ['C' '0.13' '2']]
[['A' '0.05' '1']
 ['B' '0.09' '2']
 ['C' '0.13' '3']]
更新

如果有两个以上的标签,可以执行以下操作:

import numpy as np

arr = np.array([['A', 0.05],
                ['B', 0.09],
                ['C', 0.13]])

def calc(x):
    if x < 0.08:
        return '1'
    elif 0.08 <= x < 0.10:
        return '2'
    elif 0.10 < x:
        return '3'


col = np.array([calc(e) for e in arr[:, 1].astype(np.float)])
arr = np.column_stack((arr, col))
print(arr)

那是numpy阵列吗?谢谢!当我想上3节课时,我该怎么办;如果A、B或C低于0.08,则它必须得到标签“1”,如果它高于0.10,则它必须得到标签“3”,而介于两者之间的所有内容都必须得到标签“2”?我建议创建一个函数,将间隔映射到标签,并将其应用到数组中的每个元素。我现在这样做了:我的函数称为“calc(x)”,其中x是0.05、0.09等的值,但我很难将其添加到您提供的代码中。有什么建议吗?@StevenPauly更新了答案,包含了两个以上标签的解决方案。谢谢!!现在一切都有意义了
[['A' '0.05' '1']
 ['B' '0.09' '2']
 ['C' '0.13' '3']]