Numpy/Pandas均值处理数据缺失值_numpy用均值填充缺失值_assasinSteven的博客-程序员宅基地

技术标签: python  处理缺失值  均值填充  

# -*- coding: utf-8 -*-
#-----------------------------------------------------------------------------------------------------------------------
__Author__ = 'assasin'
__DateTime__ = '2020/1/5 15:13'
#-----------------------------------------------------------------------------------------------------------------------

'''
处理数据缺失值
Numpy均值处理数据缺失值
Pandas加载数据,重构缺失数据矩阵
Pandas 实现均质填充
Pandas 处理缺失值: 标量法,丢失法,忽略法,前后法
'''

import numpy as np
import pandas as pd
from numpy import *

def loadDataSet(filepath,delim='\t'):
    fr = open(filepath)
    stringArr = [line.strip().split(delim) for line in fr.readlines()]
    #print(stringArr)
    dataArr = [list(map(float,line)) for line in stringArr]
    return mat(dataArr)


def replaceNanwithMean(dataArr):
    numfeat = shape(dataArr)
    for i in range(numfeat[1]-1):
        meanVal = mean(dataArr[nonzero((~isnan(dataArr[:,i].A))[0],i)])
        dataArr[nonzero(isnan(dataArr[:,i].A))[0],i] = meanVal

    return dataArr





if __name__ == '__main__':
    # 加载数据集
    dataArr = loadDataSet(r'../xxx.txt','    ')

    # 均值填充缺失值
    replaceNanwithMean(dataArr)

    datamat = loadDataSet(r'../xxx.txt','    ')
    df = pd.DataFrame(datamat)
    # 重构矩阵
    df = df.reindex(range(datamat.shape[0] + 5 ))
    # NAN 视为0
    loassVs = [df[col].mean()  for col in range(datamat.shape[1])]
    lists = [list(df[i].fillna(loassVs[i]))  for i in range(len(loassVs))]
    print(mat(lists).T)
    

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/assasin0308/article/details/103848243

智能推荐

机器学习和数据挖掘招聘-程序员宅基地

平台研究类数据计算平台搭建,基础算法实现,当然,要求支持大样本量、高维度数据,所以可能还需要底层开发、并行计算、分布式计算等方面的知识;算法研究类文本挖掘,如领域知识图谱构建、垃圾短信过滤等; 推荐,广告推荐、APP 推荐、题目推荐、新闻推荐等; 排序,搜索结果排序、广告排序等; 广告投放效果分析; 互联网信用评价; 图像识别、理解。数据挖掘类 商业

基于51单片机的数字电压表c语言程序,基于单片机的数字电压表(全文完整版)...-程序员宅基地

《基于单片机的数字电压表.doc》由会员分享,可免费在线阅读全文,更多与《基于单片机的数字电压表》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。1、。图键盘接口电路仿真图第章系统软件设计多路液晶显示数字电压表系统软件程序由主程序,AD转换子程序和显示子程序等组成。主程序设计根据需要,可将系统软件按照功能划分为个模块,分别是主程序模块、AD转换模块、液晶显示模块、键盘程序...

MyISAM的锁与InnoDB的锁区别_innodb和myisam的锁区别-程序员宅基地

MySQL的表锁有两种模式(即MyISAM引擎):表共享读锁(Table Read Lock)和表独占写锁(Table Write Lock)。MyISAM在执行查询语句(SELECT)前,会自动给涉及的所有表加读锁,在执行更新操作(UPDATE、DELETE、INSERT等)前,会自动给涉及的表加写锁,这个过程并不需要用户干预,因此用户一般不需要直接用LOCK TABLE命令给MyISA..._innodb和myisam的锁区别

共同好友(java)-程序员宅基地

查询两个用户的共同好友(例如两个QQ用户) 例如有两个用户,他们分别有一个好友集,user1friends和user2friends,分别放到set集合中import java.util.Set;import java.util.TreeSet;public class SameFriends { public static Set intersection(Set

C++读取带逗号分隔符的数据文件_c++ 读取文件数据 每行以逗号隔开-程序员宅基地

txt文件内容:#include <fstream>#include <iostream>#include <sstream>#include <string>#include <vector>using namespace std;int main() { vector <vector <string> > data; ifstream infile("D:\\桌面文件\\test.tx_c++ 读取文件数据 每行以逗号隔开

[深入浅出Cocoa]iOS网络编程之Socket-程序员宅基地

本文转载至 http://blog.csdn.net/kesalin/article/details/8798039分类: iOS 开发2013-04-13 20:51 9361人阅读 评论(13) 收藏 举报iosnetwork 目录(?)[+] [深入浅出Cocoa]iOS网络编程之Socket 罗朝辉 (http://blog.csdn.ne...

随便推点

SpringCloud核心教程 | 第二篇: 使用Intellij中的maven来快速构建Spring Cloud工程-程序员宅基地

spring cloud简介spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。另外说明spring cloud是基于springboot的,所以需要开发中对springboot有一定的了解,如果不了解的话可以看这篇文章:2小时学会spring...

swing动画示例_一个简单的补间动画示例-程序员宅基地

swing动画示例 大家好, 我在此示例中使用Macromedia Flash Professional 8,该示例是使用补间动画的简单方法。 好了... 方向: A.准备 1.)启动Flash程序。 加载后,创建一个新的Flash文档。 注意:默认情况下,像素设置为550 x 400,我将我的像素更改为275 x 200。 2.)通过将帧频更改为36 fps来加速动画。 *..._swing添加过渡动画

Plugin execution not covered by lifecycle configuration-程序员宅基地

我希望修改mybatis-generator-core-1.3.2的插件源码,于是思考着通过mybatis-generator-core-1.3.2-sources进行逆向,转成maven工程后,出现了如下问题:Plugin execution not covered by lifecycle configuration: org.apache.felix:maven-bundle-plugin:2_plugin execution not covered by lifecycle configuration: org.mybatis.generat

synaptics安装_synaptics安装官网-程序员宅基地

https://download.csdn.net/download/weixin_42666837/10921132下载synaptics解压,打开x64双击dpins.ext _synaptics安装官网

计算机四级网络工程师题目,计算机四级网络工程师题库-程序员宅基地

计算机四级网络工程师题库一、选择题1.地址转换技术的研究始于__D__年。A)1981B)1991C)1993D)19962.无类域间路由CIDR技术出现在IP地址概念与划分技术的第__C__个阶段。A)第一阶段B)第二阶段C)第三阶段D)第四阶段3.划分子网阶段采用__B__IP地址结构。A)网络号—主机号B)网络号—子网号—主机号C)起始IP地址/网络号位数D)起始IP地址/主机号位数4.按照..._四级网络工程师题库多少道题

ssis sql_SSIS:执行T-SQL语句任务与执行SQL任务-程序员宅基地

ssis sql T-SQL (Transact-SQL) is a set of SQL language programming extensions developed by Sybase and Microsoft. These extensions are adopted in Microsoft SQL Server and it provides a powerful set ..._“执行 t-sql 语句”任务