{{item.label}}

如何处理数据中的缺失值?

132****1099
pct的案子为什么要删除所述
提问时间:2022-07-07 02:34:51
提示:以下回答均以本问题为中心,仅供参考;如需更多帮助,请咨询早鸽顾问。 去咨询
回答 | 共1个
吴凯迪
吴凯迪
从业10年
国际商标注册
所在地区:长沙市
咨询解答:771
咨询TA

一、变量缺失过多删除

# 缺失值剔除(单个变量)

def missing_delete_var(df,threshold=None):

"""

df:数据集

threshold:缺失率删除的阈值

return :删除缺失后的数据集

"""

df2 = df.copy()

missing_df = missing_cal(df)

missing_col_num = missing_df[missing_df.missing_pct>=threshold].shape[0]

missing_col = list(missing_df[missing_df.missing_pct>=threshold].col)

df2 = df2.drop(missing_col,axis=1)

print("缺失率超过{}的变量个数为{}".format(threshold,missing_col_num))

return df2

二、样本缺失过多删除

# 缺失值剔除(单个样本)

def missing_delete_user(df,threshold=None):

"""

df:数据集

threshold:缺失个数删除的阈值

return :删除缺失后的数据集

"""

df2 = df.copy()

missing_series = df.isnull().sum(axis=1)

missing_list = list(missing_series)

missing_index_list = []

for i,j in enumerate(missing_list):

if j>=threshold:

missing_index_list.append(i)

df2 = df2[~(df2.index.isin(missing_index_list))]

print("缺失变量个数在{}以上的用户数有{}个".format(threshold,len(missing_index_list)))

return df2

三、类别型变量缺失值填充

def fillna_cate_var(df,col_list,fill_type=None):

"""

df:数据集

col_list:变量list集合

fill_type: 填充方式:众数/当做一个类别

return :填充后的数据集

"""

df2 = df.copy()

for col in col_list:

if fill_type=="class":

df2[col] = df2[col].fillna("unknown")

if fill_type=="mode":

df2[col] = df2[col].fillna(df2[col].mode()[0])

return df2

四、数值型变量缺失值填充

# 数值型变量的填充

# 针对缺失率在5%以下的变量用中位数填充

# 缺失率在5%--15%的变量用随机森林填充,可先对缺失率较低的变量先用中位数填充,在用没有缺失的样本来对变量作随机森林填充

# 缺失率超过15%的变量建议当做一个类别

def fillna_num_var(df,col_list,fill_type=None,filled_df=None):

"""

df:数据集

col_list:变量list集合

fill_type:填充方式:中位数/随机森林/当做一个类别

filled_df :已填充好的数据集,当填充方式为随机森林时 使用

return:已填充好的数据集

"""

df2 = df.copy()

for col in col_list:

if fill_type=="median":

df2[col] = df2[col].fillna(df2[col].median())

if fill_type=="class":

df2[col] = df2[col].fillna(-999)

if fill_type=="rf":

rf_df = pd.concat([df2[col],filled_df],axis=1)

known = rf_df[rf_df[col].notnull()]

unknown = rf_df[rf_df[col].isnull()]

x_train = known.drop([col],axis=1)

y_train = known[col]

x_pre = unknown.drop([col],axis=1)

rf = RandomForestRegressor(random_state=0)

rf.fit(x_train,y_train)

y_pre = rf.predict(x_pre)

df2.loc[df2[col].isnull(),col] = y_pre

return df2

2022-07-07 04:26:52
没有符合您的答案?立即联系 “在线顾问"
顾问推荐
{{item.label}}
{{item.desc}}
相关资讯 换一批
发票专用章的盖章方式
不知道你有没有注意到,大家收到的发票,发票上会盖上一个特殊的发票印章,如果没有这个印章,发票是无效的。发票专用章是企业按照税务机关的有关规定刻制的印章。顾名思义,发票专用印章是企业开具发票时所加盖的印章。
发票专用章
410次浏览
2023-01-10 18:41:46
发票专用章的盖章方式
香港公司的注册流程和所需资料有哪些
香港作为全球知名的金融中心,拥有独特的地理位置和优越的商业环境。这使得香港成为企业家们理想的注册地。
香港公司注册
910次浏览
2023-12-15 15:09:26
香港公司的注册流程和所需资料有哪些
专利转让的注意事项有哪些
专利转让是技术交易领域的一项重要活动,涉及到技术的产权转移和经济利益分配。在进行专利转让时,需要考虑到多个方面的因素,以确保交易的顺利进行和双方的权益得到保障。
专利转让
283次浏览
2024-06-03 16:28:35
专利转让的注意事项有哪些
没有专利局,应该如何申请美国专利
美国专利代理人的申请程序是怎样的?美国没有专利局,无论是专利申请还是商标申请,基本上都是商标局统一经营的业务。美国的专利申请比较奇怪,发明专利可以通过巴黎公约或PCT专利申请,但美国的外观设计专利只能通过巴黎公约专利申请。接下来,早鸽网顾问就给大家讲解关于申请美国专利的基本知识,希望这些能帮助到大家。
申请美国专利
272次浏览
2022-07-08 16:54:43
没有专利局,应该如何申请美国专利
化妆品有限公司的注册流程
随着社会的快速发展,国货崛起,同时获得了很多消费者的认可,特别是化妆品类,因此很多创业者开始注册国内护肤品牌,那么化妆品有限公司注册要进行哪些工作流程呢?接下来和早鸽网顾问一起来看看吧!希望对你有所帮助
化妆品公司注册
666次浏览
2023-03-10 16:10:11
化妆品有限公司的注册流程
王全蓉
王全蓉顾问
擅长:专家商标注册,商标撤三,商标异议
执业6年
咨询专业顾问
最新问答
2023-06-19 06:34:24
北京海丰益商贸中心基本介绍?
北京海丰益商贸中心基本介绍?
2023-06-19 06:33:56
北京佳兴源装饰有限公司第一分公司公司大概情况
北京佳兴源装饰有限公司第一分公司公司大概情况
2023-06-19 06:33:29
北京君燕环保设备有限公司是多久时候成立的?
北京君燕环保设备有限公司是多久时候成立的?
2023-06-19 06:32:19
北京市华盛业石材经营部是多久时候成立的?
北京市华盛业石材经营部是多久时候成立的?
2023-06-19 06:31:54
北京市四季永芳石材经营部基本介绍?
北京市四季永芳石材经营部基本介绍?