python数据清洗—实战案例(清洗csv文件)

我也是最近才开始这方面的学习,这篇就当作学习的笔记,记录一下学习的过程

目录

*
所以我们现在要解决的问题就是删除列名中的空格
接下来要解决的问题就是处理文件中的重复数据
接下来要处理的问题就是补全数据中的缺失值
全部代码

所要处理的数据

python数据清洗---实战案例(清洗csv文件)

数据中主要存在的问题包括:

1.列名中存在空格
2.存在重复数据
3.存在缺失数据

导入pandas模块,打开数据文件

import pandas as pd

df = pd.read_csv("ResourceFile.csv")

当我们想要输出指定列名的时候,却报错了

print(df.名称)

python数据清洗---实战案例(清洗csv文件)

但我们的列名中的确是有”名称”这一列的,为什么会显示没有”名称”这一列呢?我们输出列名看一下

方法一:

print(df.describe())

python数据清洗---实战案例(清洗csv文件)

方法二:


print(df.columns.values)

python数据清洗---实战案例(清洗csv文件)

我们可以看到,列名”名称”是带有空格的,那如果我们这样写

print(df['  名称 '])

python数据清洗---实战案例(清洗csv文件)
就可以输出这一列的数据了

所以我们现在要解决的问题就是删除列名中的空格

使用比较简单的一种方法: 列表推导式去空格

ClName = df.columns.values

df.columns = [x.strip() for x in ClName]
print(df.columns.values)

python数据清洗---实战案例(清洗csv文件)

成功删除空格

接下来要解决的问题就是处理文件中的重复数据

我们先来查看下一共有多少行数据,三种方法

方法一:


print(df.shape)

python数据清洗---实战案例(清洗csv文件)

方法二:

print(df.info())

python数据清洗---实战案例(清洗csv文件)

方法三:


print(df.index)

python数据清洗---实战案例(清洗csv文件)

我们可以看到,通过三种方法得到的结果是一共有2794行数据

那我们现在来查看重复的数据

这里说的重复是指两行数据完全相同,如果只有部分数据相同,那不是重复


print(df.duplicated())

false表示没有重复,true表示有重复,默认从上到下比较,若上一行的数据和下一行的数据重复,则下一行标记为true

python数据清洗---实战案例(清洗csv文件)

如果这样不太直观,我们可以直接查看有多少行重复的数据


print(df.duplicated().sum())

python数据清洗---实战案例(清洗csv文件)

还可以查看重复的数据行


print(df[df.duplicated()])

python数据清洗---实战案例(清洗csv文件)

接下来就要删除这些重复的数据,两种方法

方法一:

这种方法不会对数据文件直接进行修改,而是生成一个临时表


print(df.drop_duplicates())

输出的临时表是删除重复数据之后的表,我们可以看到,现在的数据只有614行

python数据清洗---实战案例(清洗csv文件)

而此时如果再查看源数据文件的信息,可以看到,源数据文件中的数据并没有减少

print(df.info())

python数据清洗---实战案例(清洗csv文件)

方法二:

这种方法会直接对源数据文件进行修改


df.drop_duplicates(inplace=True)

查看源数据文件信息

print(df.info())

python数据清洗---实战案例(清洗csv文件)

删除重复数据之后,我们要重置文件的索引


df.index = range(df.shape[0])

查看索引信息

print(df.index)

python数据清洗---实战案例(清洗csv文件)

接下来要处理的问题就是补全数据中的缺失值

第一步,查看缺失值

方法一:


print(df.isnull())

没有缺失值标记为false,有缺失值标记为true

python数据清洗---实战案例(清洗csv文件)

方法二:


print(df.notnull())

没有缺失值标记为true,有缺失值标记为false

python数据清洗---实战案例(清洗csv文件)

方法三:

显示每一列中的缺失值数量


print(df.isnull().sum())

python数据清洗---实战案例(清洗csv文件)

方法四:

显示有缺失值的数据


print(df[df.特色.isnull()])

python数据清洗---实战案例(清洗csv文件)

第二步,填补缺失值


print(df.loc[df.特色.isnull(),'区域'])

python数据清洗---实战案例(清洗csv文件)

填补”级别”列有缺失值的数据,填补内容为”无级别”


df.loc[df.级别.isnull(),'级别'] = "无级别"

查看’级别’列中缺失值的数量

print(df.isnull().sum())

python数据清洗---实战案例(清洗csv文件)

填补”特色”列有缺失值的数据,填补内容为”未知”


df.loc[df.特色.isnull(),'特色'] = "未知"

查看’特色’列中缺失值的数量

print(df.isnull().sum())

python数据清洗---实战案例(清洗csv文件)

数据处理完成,保存文件

df.to_csv("ResourceFile.csv")

查看数据文件

python数据清洗---实战案例(清洗csv文件)

全部代码

import pandas as pd

df = pd.read_csv("ResourceFile.csv")

ClName = df.columns.values

df.columns = [x.strip() for x in ClName]

df.drop_duplicates(inplace=True)

df.index = range(df.shape[0])

df.loc[df.级别.isnull(),'级别'] = "无级别"

df.loc[df.特色.isnull(),'特色'] = "未知"

df.to_csv("ResourceFile.csv")

Original: https://blog.csdn.net/qq_45675449/article/details/115645184
Author: SmallSweets
Title: python数据清洗—实战案例(清洗csv文件)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/675245/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 全网最通俗易懂的聚类算法!嘿,来聚个类!

    所谓人以类聚,物以群分。人们都喜欢跟自己性格相合,爱好相同的人在一起。 俗称:处得来! 靓仔, 我很中意你啊~ A 某和 B 某青梅竹马,A 某通过 B 某认识了 C 某,发现兴趣…

    人工智能 2023年5月31日
    078
  • 去噪扩散概率模型(DDPM)的简单理解

    图1 DDPM 无条件控制生成的图像。 这些不是真实的人、地方、动物或物体。 ; 前言 扩散模型最近在图像生成领域取得了巨大的成功,类似 OpenAI 的 DALL-E 2,Goo…

    人工智能 2023年7月29日
    053
  • 加权黑猩猩优化算法(WChOA)附Matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。🍎个人主页:Matlab科研工作室🍊个人信条:格物致知。更多Matlab仿真内容点击👇…

    人工智能 2023年6月26日
    080
  • TensorRT(二)TensorRT使用教程(Python版)

    一、前言 1.1 本文目标 本文主要是宏观地阐述一下如何使用TensorRT来部署深度学习模型以实现对模型的加速,从而提高深度学习模型运行的效率,根据我自己的实测,确实可以达到官方…

    人工智能 2023年6月16日
    075
  • VMware Tools安装步骤(windows10)

    VMware Tools是VMware虚拟机中的一个工具,其主要作用是能够使鼠标在虚拟机和主机之前流畅地切换,并且能够共享剪贴板。我们可以通过VMware Tools将主机的文件复…

    人工智能 2023年5月30日
    065
  • MySQL Workbench 安装及使用

    MySQL Workbench 安装及使用 文章目录 MySQL Workbench 安装及使用 1. MySQL Workbench 简介 2. MySQL Workbench …

    人工智能 2023年7月29日
    091
  • 什么是贝叶斯线性回归

    什么是贝叶斯线性回归? 贝叶斯线性回归是一种统计学习方法,用于建立输入变量(自变量)与目标变量(因变量)之间的关系模型。它可以通过已有的数据集来预测未来的结果。与其他线性回归方法不…

    人工智能 2023年12月31日
    088
  • 清华镜像用不了?conda安装tensorflow教程以及多种报错的解决(windows环境)

    conda安装tensorflow教程以及报错处理(windows环境) 1.在很多教程中,作者会让我们先创建一个虚拟环境,在这个虚拟环境创建时一般会指定python的版本,如下面…

    人工智能 2023年5月23日
    072
  • 【计量经济学导论】14. 定性响应回归模型

    线性概率模型 当我们在用多元线性回归模型去解释一个二值结果时,该模型就成为线性概率模型。为什么是线性概率,我们在后面的分析中便可以看到。 对于线性概率模型,其模型设定为:Y = β…

    人工智能 2023年6月18日
    070
  • 如何学习才能精通opencv

    在线教程 OpenCV Tutorialsopencv中文论坛 数字图像处理英文第四版 图像处理基础理论论述与软件实践方法相结合的第一本书,它集成了冈萨雷斯和伍兹所著的《数字图像处…

    人工智能 2023年6月22日
    080
  • 试验设计系列(一)| 样本量与功效(power)的计算

    在「临床医师看过来」系列的前18篇文章中,我们介绍了基础的统计分析及JMP入门操作。从本文开始,我们将通过三篇系列文章来陆续介绍临床试验的一些内容,分别从样本量、随机分组、等效性检…

    人工智能 2023年7月16日
    0113
  • AEB功能概览

    一、引言 AEB即自动紧急制动,是最早的智能驾驶辅助系统落地功能之一,且目前已成为国内安全五星标准的必检项。欲了解AEB的功能,需要先对刹车系统控制有充分的理解,再结合ADAS本身…

    人工智能 2023年6月2日
    089
  • PCB板子焊接注意事项及小技巧

    在PCB设计这一段时间,真真正正的过了一把焊接的瘾,一个月的时候几乎天天焊接板子。 从最开始的焊接一块板子需要一个礼拜,到两三天,到现在的3-4个小时,收获也很多,可能说的有些啰嗦…

    人工智能 2023年6月28日
    078
  • PCA算法的学习

    引入 主成分分析(Principal components analysis,简称PCA)是最重要的降维方法之一。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。一般我们提到…

    人工智能 2023年5月23日
    089
  • linux12企业实战 — 55 zabbix_server 监控取值

    文章目录 * – + * 1、zabbix_server 监控web机器取值失败 * 2、查看zabbix_server服务端日志 * 3、本地hosts (zabbi…

    人工智能 2023年6月28日
    080
  • 第十四届蓝桥杯第一期模拟赛 python

    蓝桥杯官方给了一个机会给我们可以尝试这个第一期模拟赛,那我们就试一下吧,学习学习一下,也给大家一点借鉴嘻嘻,也都不一定对哦,仅供参考。 2022/11/8,填空题已完成 2022/…

    人工智能 2023年7月29日
    054
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球