Python 如何标准化数据,使平均值为0?

Python 如何标准化数据,使平均值为0?,python,pandas,Python,Pandas,作为主成分分析的一部分,我正在尝试用Python标准化数据集。到目前为止,我已经做到了以下几点: cancer_data = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data', header=None) cancer_data.columns = ['Sample code', 'Clump Thi

作为主成分分析的一部分,我正在尝试用Python标准化数据集。到目前为止,我已经做到了以下几点:

cancer_data = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data', header=None)
cancer_data.columns = ['Sample code', 'Clump Thickness', 'Uniformity of Cell Size', 'Uniformity of Cell Shape',
                'Marginal Adhesion', 'Single Epithelial Cell Size', 'Bare Nuclei', 'Bland Chromatin',
                'Normal Nucleoli', 'Mitoses','Class']
cancer_data = cancer_data.replace('?', np.NaN)
cancer_data = cancer_data.fillna(cancer_data.median())
classDF = cancer_data['Class']
cancer_data = cancer_data.drop(['Class' ,'Sample code'], axis = 1)

# Standardization of data 
standardized = StandardScaler().fit_transform(cancer_data)
x = pd.DataFrame(standardized, columns = cancer_data.columns)
但是,当我检查平均值时,我得到以下输出:

array([-5.08256606e-17, -9.14861892e-17, -3.04953964e-17,  5.08256606e-17,
        5.08256606e-17, -8.13210570e-17,  3.04953964e-17, -1.32146718e-16,
       -8.13210570e-17])

我不太确定我做错了什么,因为这些值是错误的,所以非常感谢任何帮助(我是数据挖掘新手)。

使用标准化公式: 列=要标准化的列

df_std[column] = (df_std[column] - df_std[column].mean()) / 
df_std[column].std()
或:

有关更多信息,请阅读:
使用标准化公式: 列=要标准化的列

df_std[column] = (df_std[column] - df_std[column].mean()) / 
df_std[column].std()
或:

有关更多信息,请阅读:

这些值实际上为零。只是浮点运算有一些问题<代码>-5.082e-17表示
0.000…0005082
(十六个零)。请参阅以确保:记住中位数和平均值是两个不同的东西。double有53位尾数,约为3.x*17。这些值实际上是零。只是浮点运算有一些问题<代码>-5.082e-17表示
0.000…0005082
(十六个零)。请参阅以确保:记住中位数和平均值是两个不同的东西。double有53位尾数,约为3.x*17