我有一个数据集,列名为 "Value",我想根据第二个数据集的信息添加第二个列 "Name",这个数据集有两列 "Label "和 "Start"。
必须检查 "Value "列中的每个数字在 "Start "列中的位置,并从 "Label "中返回相应的值。
例如:"值"=50 "值"=50从 "开始 "列的0到100之间。必须返回 "标签 "A。
谢谢您。
使用 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