![](/img/trans.png)
[英]Populate column in data frame based on a range found in another dataframe
[英]Group a column of a data frame based on another dataframe
基于此数据框
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的新手。
使用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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.