在Pandas中规范化一个列

  • Post category:Python

在Pandas中规范化数据可以通过对数据的标准化、归一化等方法来实现。下面是一个完整的攻略。

步骤一:导入所需的Python库

首先,我们需要导入以下Python库:Pandas、Numpy、和scikit-learn。

import pandas as pd
import numpy as np
from sklearn import preprocessing

步骤二:创建数据框

我们可以通过 DataFrame 函数创建一个数据框,如下所示:

data = {'score': [234, 24, 14, 27, 68, 67, 74, 33, 73, 77, 57, 29], 
        'name': ['Peter', 'John', 'Sarah', 'Tom', 'Bob', 'Lucy', 'Jack', 'Amy', 'Vince', 'Harry', 'Molly', 'Betty']}
df = pd.DataFrame(data)
print(df)

输出结果如下:

    score   name
0     234  Peter
1      24   John
2      14  Sarah
3      27    Tom
4      68    Bob
5      67   Lucy
6      74   Jack
7      33    Amy
8      73  Vince
9      77  Harry
10     57  Molly
11     29  Betty

步骤三:创建规范化器对象

下一步,我们需要创建一个规范化器对象。在本例中,我们将使用MinMaxScaler方法进行数据的归一化。

scaler = preprocessing.MinMaxScaler()

步骤四:使用规范化器对象对数据进行调整

我们可以使用规范化器对象来对数据进行标准化和归一化等处理。在本例中,我们将使用 fit_transform() 方法对数据进行归一化处理,如下所示:

df['score'] = scaler.fit_transform(df[['score']])

步骤五:输出处理后的数据

最后,我们可以输出处理后的数据:

print(df)

输出结果如下:

       score   name
0   1.000000  Peter
1   0.000000   John
2   0.000000  Sarah
3   0.022222    Tom
4   0.257778    Bob
5   0.251111   Lucy
6   0.295556   Jack
7   0.077778    Amy
8   0.288889  Vince
9   0.311111  Harry
10  0.195556  Molly
11  0.033333  Betty

可以看到,数据框中的分数一列已经被归一化为 0 到 1 的范围内了。