Python 3.x 为特征工程生成标准化离散值

Python 3.x 为特征工程生成标准化离散值,python-3.x,pandas,numpy,scikit-learn,sklearn-pandas,Python 3.x,Pandas,Numpy,Scikit Learn,Sklearn Pandas,有一个dataframe,其中一列存储离散值,如下所示。我想创建另一列来存储规范化值。例如,对于4050,相应的条目将是4。有没有什么有效的方法来代替编写我自己的函数?在Sklearn中,是否有生成规范化值的函数 根据您的评论: 大约有20个不同的值,范围从1000到9999,所以我想将每1000个值作为一个类别 从严格意义上讲,这并不是真正的规范化。但是,要做到这一点,您可以轻松地使用楼层划分(/): 例如: >>> df values 0 2021 1 8

有一个dataframe,其中一列存储离散值,如下所示。我想创建另一列来存储规范化值。例如,对于
4050
,相应的条目将是
4
。有没有什么有效的方法来代替编写我自己的函数?在Sklearn中,是否有生成规范化值的函数

根据您的评论:


大约有20个不同的值,范围从1000到9999,所以我想将每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

为什么对应的条目是4?你想要什么样的标准化?有很多方法可以规范化数据…大约有20个不同的值,范围从1000到9999,所以我想用每1000个作为分类库,你对如何更好地规范化它们有什么建议吗?就像我说的,这不是规范化。我不确定你想要什么,但如果你想标准化它们,使它们的平均值为0,标准偏差为1,我建议使用,但我认为这与你的要求完全不同。
>>> 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