PYTHON。根据第二个数据集的范围和标签,在单列数据集中包含的标签值。

问题描述 投票:0回答:1

我有一个数据集,列名为 "Value",我想根据第二个数据集的信息添加第二个列 "Name",这个数据集有两列 "Label "和 "Start"。

必须检查 "Value "列中的每个数字在 "Start "列中的位置,并从 "Label "中返回相应的值。

例如:"值"=50 "值"=50从 "开始 "列的0到100之间。必须返回 "标签 "A。

谢谢您。

资料

python sorting label
1个回答
0
投票

使用 pandas.cut()

df2 = pd.DataFrame({'Label': ['A', 'B', 'C', 'D', 'E'], 'start': [0, 100, 150, 250, 300]})

df = pd.DataFrame({'value': [0, 50, 75, 100, 150,200, 220, 250, 275, 300, 400]})

bins = np.append(df2.start, [np.inf])
df['Name'] = pd.cut(df.value, bins, labels=df2.Label, right=False)

产出:

    value Name
0       0    A
1      50    A
2      75    A
3     100    B
4     150    C
5     200    C
6     220    C
7     250    D
8     275    D
9     300    E
10    400    E
© www.soinside.com 2019 - 2024. All rights reserved.