我尝试了这个代码,以便在我的列(任何策略(上估算缺失的值
import numpy as np
import pandas as pd
from sklearn.impute import SimpleImputer
from sklearn.compose import ColumnTransformer
X=pd.dataframe('namefile.csv')
li=['feature1']
# X['feature1'].Value_Counts of feature1:
# 0.00 7269
# 1.00 1745
# nan 683
# 2.00 607
# 3.00 520
# 4.00 146
# 5.00 31
# 6.00 6
p=ColumnTransformer(remainder='passthrough',transformers=[('simp',SimpleImputer(),li)])
z=p.fit_transform(X)
DF_Z=pd.DataFrame(z,X.columns)
#Distrbution Checking
# DF_Z['feature1'].Value_Counts of feature1:
# 4.00 7269
# 3.00 3137
# 5.00 2170
# 2.00 403
# 0.00 235
# 1.00 45
我不明白为什么转换器会破坏值的完成。我不明白为什么价值观没有丢失的都被更改了。
可能数据是正确的,但列顺序发生了变化,因此您对其重新构建的框架放置了错误的列标签。请尝试
DF_Z = pd.DataFrame(z, p.get_feature_names_out())