说我在数据框中有一个列'user_age',并且我已经通过类似以下方式创建了'user_age_bin':
df['user_age_bin']= pd.cut(df['user_age'], bins=[10, 15, 20, 25,30])
在模型推论中,我有一条记录的user_age为28,我想为该记录分配'25 -30'bin。我是否必须编写一个包含许多if else
的函数来执行此操作,例如:
def assign_bin(age):
if age < 10:
return '<10'
elif age< 15:
return '10-15'
... etc. etc.
我想肯定有更好的方法,但是在网上搜索后找不到。谢谢!
编辑:我更改了代码并添加了明确的bin范围。
您可以尝试以下方法:
bins=[10, 15, 20, 25, 30]
labels = [f'{a}-{b}' for a, b in zip(bins[:-1], bins[1:])]
df['user_age_bin']= pd.cut(df['user_age'], bins=bins, labels=labels)
请注意,如果您使用的是python<3.7
,则应使用类似语法的格式替换f-string。