缺失值填充
拿到的数据或多或少都不是立即可以用的,对于一些可能因为各种主观或者客观原因导致缺失的情况我们需要进行缺失值处理,尽可能地保留更多地数据。
多重插补法
(1)插补:将不完整数据集缺失的观测行估算填充m次。请注意,填充值是从某种分布中提取的。模拟随机抽取并不包含模型参数的不确定性。更好的方法是采用马尔科夫链蒙特卡洛模拟(MCMC,Markov Chain Monte Carlo Simulation)。这一步骤将生成m个完整的数据集。
(2)分析:分别对(m个)每一个完整数据集进行分析。
(3)合并:对来自各个填补数据集的结果进行综合,产生最终的统计推断,这一推断考虑到了由于数据填补而产生的不确定性。该方法将空缺值视为随机样本,这样计算出来的统计推断可能受到空缺值的不确定性的影响。
from fancyimpute import IterativeImputer
file_path = '../Data.xlsx'
df = pd.read_excel(file_path) # 注意路径
columns_to_impute = ['xxx', 'xxx', '...']
# 创建多重插补器
imputer = IterativeImputer()
# 对指定的列进行多重插补
df[columns_to_impute] = imputer.fit_transform(df[columns_to_impute])
df.to_excel('../Data2.xlsx', index=False)
平均值法
如字面意思,用该列的平均值填充该列的缺失。
file_path2 = '../Data.xlsx'
df = pd.read_excel(file_path2)
columns_to_fill_median = ['xxx', 'xxx', '...']
# 将指定列中的空值填充为该列的平均值
for column 服务器托管网in columns_to_fill_median:
mean_value = df[column].mean()
df[column] = df[column].fillna(mean_value)
output_file_path = '../Data2.xlsx'
df.to_excel(output_file_path, index=False)
KNN法
K最近距离法:先根据欧式距离或相关分析来确定距离具有缺失数据样本最近的K个样本,将这K个值加权平均来估计该样本的缺失数据。
from sklearn.impute import KNNImputer
file_path2 = '../Data.xlsx'
df = pd.read_excel(file_path2) # 注意路径
columns_to_impute = ['xxx', 'xxx', '...']
imputer = KNNImputer()
df[columns_to_impute] = imputer.fit_transform(df[columns_to_impute])
df.to_excel('../Data_2.xlsx', index=False)
删除
如果你的数据足够多,也可以简单点直接把有空缺值的都删了。
Reference
Sklearn中有许多填充方法:https://scikit服务器托管网-learn.org/stable/modules/impute.html
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 聊聊ClickHouse MergeTree引擎的固定/自适应索引粒度
前言 我们在刚开始学习ClickHouse的MergeTree引擎时,就会发现建表语句的末尾总会有SETTINGS index_granularity = 8192这句话(其实不写也可以),表示索引粒度为8192。在每个data part中,索引粒度参数的含义…