为特征工程生成标准化离散值

generate normalized discrete values for feature engineering

有一个数据框,一列存储离散值,如下所示。我想创建另一个存储规范化值的列。例如,对于 4050,对应的条目将为 4。有什么有效的方法可以代替我自己编写函数吗? Sklearn中有生成归一化值的函数吗?

根据您的评论:

there are around 20 different values, and the range is from 1000 to 9999, so I would like to use every 1000 as a category

从严格意义上讲,这并不是真正的规范化。但是,要做到这一点,您可以轻松地使用 floor division (//):

df['new_column'] = df['values']//1000

例如:

>>> df
   values
0    2021
1    8093
2    9870
3    4508
4    2645
5    1441
6    8888
7    8921
8    7292
9    8571

df['new_column'] = df['values']//1000

>>> df
   values  new_column
0    2021           2
1    8093           8
2    9870           9
3    4508           4
4    2645           2
5    1441           1
6    8888           8
7    8921           8
8    7292           7
9    8571           8