通过pandas.cut()函数创建垃圾箱后,如何有效地将每个值标记到垃圾箱?

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

说我在数据框中有一个列'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范围。

python pandas data-manipulation binning inference
1个回答
0
投票

您可以尝试以下方法:

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。

© www.soinside.com 2019 - 2024. All rights reserved.