首页 > 解决方案 > 如何使用熊猫将连续数字转换为分类?

问题描述

我正在寻找这个问题的解决方案几天,但不幸的是没有成功。

我在这样的列中有连续值:

Val: 1, 15, 2, 91, 52, 126

我需要将这些数字转换为间隔的类别。例如,第一个数字应属于 (1-10) 类别

我知道我们可以定义间隔并使用转换数据pd.cut

pd.cut(df.val, right=False)

但我的问题是我无法定义区间,因为我有数百万的价值。

理想的解决方案是我可以定义区间范围,然后它会自动搜索值并将其转换为该类别。

这将是我理想的输出:

Val     Val_Cat
1        1-10
15       10-20
2        1-10
91       90-100
52       50-60
126      120-130

标签: pythonpandascutcategorical-data

解决方案


您可以使用所需的相应类别创建一个新列:

def cat(x): 
    return str(x//10*10) + '-' + str((x//10*10)+10)

df['Val_cat']=list(map(cat, df.Val))

推荐阅读