数据清洗(1)--数据查缺补漏

news2024/11/19 5:54:22

前言

之前使用scikit 进行一些基础模型的选择(SVM支持向量机,LR算法,KNN,SGD,Bays贝叶斯,决策树,随机森林),创建,训练(测试集+验证集)(分类规则-基尼划分标准,熵划分标准->交叉验证),和调参(主要在决策树和随机森林上面试了下)。多多少少了解了一点模型的由来。但是始终不太了解数据是从何而来,需要如何清洗,需要如何正则化,归一化之类的。于是就有了以下的文章。以下都是本人看了别人的文章或者敲了一些代码后对数据的一些认知,本人对python不是很熟,所以很多时候可能理解得不对。有错误麻烦指出来,谢谢!

条件

lianjia.json

格式如下

json数据先转换成csv文件

# 将json数据转换成csv数据,方便后面进行数据的运算
import json
import csv
import os


def jsonToCsv(jsonFile, csvFile):
    # 查看当前的路径
    path = os.getcwd()
    print(path)

    # 1,读取json数据 读取csv文件
    # json_fp = open(jsonFile, "r", encoding='utf-8')
    csv_fp = open(csvFile, "w", encoding='utf-8', newline='', )
    writer = csv.writer(csv_fp)
    with open(jsonFile, 'r', encoding='utf-8') as json_fp:
        isTitle = True;
        # 2,提取出表头和表的内容
        for line in json_fp.readlines():
            lineStr = json.loads(line)  # 将每一条数据读取出来
            print(lineStr)
            if isTitle:
                sheet_title = lineStr.keys()
                print(sheet_title)
                isTitle = False
                writer.writerow(sheet_title)
            else:
                content = lineStr.values()
                writer.writerow(content)


    # 6,关闭两个文件
    json_fp.close()
    csv_fp.close()

jsonToCsv(jsonFile='H:\pythonFunction\jsonToCsv\lianjia.json', csvFile='H:\pythonFunction\jsonToCsv\zufang.csv')

得到以下数据:

开始对数据进行处理

因为数据里面有分号",",而内容里面也有分号。怕出其他幺蛾子,于是直接得到的csv重新使用"|"划分。

# 找出数据缺失的部分
import pandas as pd
import csv

# 读取文件
# df = pd.read_csv('zufang1.csv', sep='|')  # 这个需要添加分隔符参数,是因为我们使用的"|"不是默认分隔符
df = pd.read_csv('zufang.csv')  # 这里不需要添加分隔符参数,是因为这个csv文件使用的时候默认分隔符 ","

# # 这个是因为看到分隔符里面有相同的“,”,所以怕转换成excel的时候出错,所以将分隔符转换成“|”
df.to_csv('zufang1.csv', sep='|')

# # 查看每一列是否有NaN
# print(df.isnull().any(axis=0))
#
# # 查看每一行是否有NaN
# print(df.isnull().any(axis=1))
#
# # 查看所有数据中心是否有NaN最快的,没有输出False,反之输出True
# print(df.isnull().values.any())
#
# # 查看每一列是否有缺失
# print(df.isna().any(axis=0))
#
# # 查看每一行是否有缺失
# print(df.isna().any(axis=1))
#
# # 查看所有数据中心是否有缺失最快的,没有输出False,反之输出True
# print(df.isna().values.any())

# 输出含有NaN的数据行
# print(df[df.isnull().values==True])



print('=====================================')

# 输出含有缺失的数据行
# print(df[df.isna().values==True])

df.info()  # 从这里可以看到每一行总共的数据,可以查出

print('=====================================')

for columnname in df.columns:
    if df[columnname].count() != len(df):
        loc = df[columnname][df[columnname].isnull().values==True].index.tolist()
        print('列名: “{}”,第{}行位置有缺失值'.format(columnname, loc))




其中df.info指令指出了哪个列总共缺失了多少值

对比其他列都是13987个数据,tags,facility,description分别只有13609,8805,4125个数据。分别少了13987-13609=378个,13987-8805=4882个,13987-4125=9862个。

这部分内容则指出了数据缺失的具体位置,如下图

以上即为当前学到的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1150126.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis测试新手入门教程

在测试过程中,我们或多或少会接触到Redis,今天就把在小破站看到的三丰老师课程,把笔记整理了下,用来备忘,也希望能给大家带来亿点点收获。 主要分为两个部分: 一、缓存技术在后端架构中是如何应用的&#…

C语言实现求某班学生的平均成绩和均方差

完整代码: /* 已知求成绩的平均值和均方差公式为:𝑎𝑣𝑒 ∑𝑠𝑖/n , 𝑑𝑒𝑣 √(∑ (𝑠𝑖−𝑎𝑣&#x1d45…

Android开发知识学习——HTTPS

文章目录 定义HTTPS连接HTTPS 连接建立的过程课后题 定义 HTTP Secure / HTTP over SSL / HTTP over TLS SSL:Secure Socket Layer -> TLS Transport Layer Security 定义:在HTTP之下增加的一个安全层,用于保障HTTP的加密传输 本质&…

Python 自动化测试全攻略:五种自动化测试模型实战详解!

随着移动互联网的发展,软件研发模型逐步完善,软件交付质量越来越受到软件公司的重视,软件测试技术特别是自动化测试技术开始在软件系统研发过程中发挥着越来越重要的作用。 与传统的手工测试技术相比,自动化测试具备了良好的可操…

Mysql进阶-索引篇(下)

SQL性能分析 SQL执行频率 MySQL 客户端连接成功后,通过 show [session|global] status 命令可以提供服务器状态信息。通过如下指令,可以查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次,通过sql语句的访问频次,我们可…

技术视角下的跑腿小程序开发:关键挑战和解决方案

跑腿小程序作为连接服务提供者和用户的桥梁,面临着诸多技术挑战。本文将聚焦于技术层面的关键挑战,并提供解决方案,以帮助开发者应对技术上的复杂问题。 1. 实时性与性能挑战 挑战: 跑腿小程序需要实时地匹配订单、更新状态和提…

【java学习—十】操作集合的工具类Collections(8)

文章目录 1. 操作集合的工具类: Collections2. 应用3. 查找、替换3.1. max 与 min3.2. 根据Comparator返回max(min) 3.3. frequency 与 replaceAll4. 同步控制 1. 操作集合的工具类: Collections Collections 是一个操作 Set 、List 和 Map 等集合的工具…

从LLM到AIGC,开启AI时代寻宝之旅!

引言 还记得《头号玩家》中男主人公赢得游戏的方式吗——在游戏中漫无目的地闲逛,然后发现彩蛋,获得胜利。 在人工智能领域,有一种新奇性搜索原则的实验,使得机器研究的成功之路恰似寻找彩蛋的道路。比如在不设定“出门”目标的情…

为什么会被【禅道】工具的公司踢出QQ群的反思…………

周末备份Gitlab的代码库,把Gitlab更新到了最新的16.5。顺带看了禅道官网出了最新版本18.8。但是禅道的升级更新并不顺利…………。 先说一下为什么用禅道这个工具: 再使用禅道这个工具前,使用过的工具有QC(Quality Center)、jira&#xff0…

测试工程师简历编写攻略:打造高点击率的简历!

简历是入职职场的一张名片,也是进入职场一块“敲门砖”。从某种角度说,简历也是一张专业人员的说明书。 软件测试人员作为IT行业具有技术含量的职业,一份优秀的简历包含的内容以及如何写好简历尤为重要。接下来从以下两方面来介绍这个话题&a…

Android任务栈和启动模式

Andrcid中的任务栈是一种用来存放Activity实倒的容器。任务最大的特点就是先进后出,它主要有两个基本操作,分别是压栈和出栈。通常Andaid应用程序都有一个任务栈,每打开一个Activity时,该Activity就会被压入任务栈。每销毁一个Act…

eclipse Occurrence

eclipse Occurrence Occurrence of initUi2_setData_99 Window->Preferences->General->Editors->Text Editors->Annotations->Occurrences 个人感觉最好用的颜色; 边线,正文都可以看得清楚

Elasticsearch(一)---介绍

简介 Elasticsearch是一个基于Lucene的实际的分布式搜索和分析引擎。设计用于云计算中,能够达到近实时搜索,稳定,可靠,快速,安装使用方便。基于RESTful接口。 官网地址:Elasticsearch 平台 — 大规模查找…

开关电源测试方案分享:电源纹波及噪声测试方法、测试标准

纹波及噪声影响着设备的性能和稳定性,是开关电源测试的重要环节。通过电源纹波噪声测试,检测电源纹波情况,从而提升开关电源的性能。纳米软件开关电源自动化测试软件助力纹波和噪声测试,提升测试效能。 开关电源纹波及噪声测试方法…

一文分享提升嵌入式代码的分析工具

当前标准的C语言编译器存在普遍只能找出代码中潜在的缺陷,而对程序方案设计并没有效。 使用静态代码分析器有助于提升固件和捕获编译器难以察觉的问题。 1、用于嵌入式的常见代码静态分析工具 代码静态分析工具,顾名思义就是对代码进行静待分析&#…

【Python图像处理局部放大】输入图像,选择两处不同的区域进行放大操作,然后将原始图像、处理后的两个区域以及标记合成新图像进行展示

NeRF-w 渲染后的图像效果的定性对比,对局部放大以观察细节效果。如下 对单张渲染后的图像,选择指定区域并进行放大操作,然后将原始图像、处理后的两个区域以及标记连线的新图像,如下图 代码 from PIL import Image, ImageDraw# 读…

预制件二维码怎么做

凡尔码的二维码管理系统不仅提供了高效便捷的二维码生成功能,还配备了一套完善的预制构件管理方案。通过扫描二维码,用户可以查看预制构件的详细信息,包括项目名称、构建名称、安装位置、重量、生产日期、生产单位、产品出厂检验材料、尺寸等…

《2023整车操作系统发展趋势研究》丨附下载

✦ ✦✦ ✦✦ ✦✦ ✦ 1996年,Gartner提出SOA其核心思想在于“通过将庞大的计算系统按照实际业务拆分为独立部署的大小合适的功能模块,提高功能单元的复用性,降低产品开发的复杂度和成本”。 如今,软件定义汽车领域引入SOA&…

竟然还有人不知道这个app?注册即可在线管理各类地理空间数据

「四维轻云」是一款轻量化的地理空间数据管理云平台,具有项目管理、数据浏览、数据分享、场景编辑、素材库等功能。 此外,用户还可以在应用商店及官网下载安装“四维轻云”APP。安装完成后,用户可以在APP中管理、查看及分享倾斜摄影模型、激…

一文看懂完整的研究生生活规划

很多人在刚从本科步入研究生生活的时候,总是对于自己三年的研究生生活没有清晰的规划,总是在各种浪费时间,没有拿到想要的东西,也没有学到想学的东西,亦或是没有找到理想的工作,最后草草的毕业。这个时候我们就应该对于自己的研究生生活有个清晰的规划,帮助我们不留遗憾…