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/751212/

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

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球