基于此数据框
df1 Name Age
Johny 15
Diana 35
Doris 97
Peter 25
Antony 55
例如,我有此数据框,其中包含要使用的范围数
df2 Header Init1 Final1 Init2 Final2 Init3 Final3
Names NaN NaN NaN NaN NaN NaN
Age 0 20 21 50 51 100
我正在寻找的是得到这样的结果
df3 Name Age
Johny 0-20
Diana 21-50
Doris 51-100
Peter 21-50
Antony 51-100
我不知道 cut()是否是可能的解决方案,但是我是python的新手。
答案 0 :(得分:2)
使用pd.cut
:
l = df2.iloc[1,1:].tolist()
labels = [str(t[0])+'-'+str(t[1]) for t in zip(l[::1],l[1::1])]
df['Age'] = pd.cut(df['Age'], bins=l, labels=labels)
print(df)
Name Age
0 Johny 0-20
1 Diana 21-50
2 Doris 51-100
3 Peter 21-50
4 Antony 51-100