一文带你深入了解Python中的数据清洗

 更新时间:2023年03月27日 14:49:50   作者:胖子是个潜力股  
数据清洗一般包括:空值,异常值,重复值,类型转换和数据整合这些操作,这篇文章将通过一些示例为大家详细讲讲Python中数据清洗的操作的实现,需要的可以参考一下

这里数据清洗需要用到的库是pandas库,下载方式还是在终端运行 : pip install pandas.

首先我们需要对数据进行读取

import pandas as pd
 
data = pd.read_csv(r'E:\PYthon\用户价值分析 RFM模型\data.csv')
pd.set_option('display.max_columns', 888)  # 大于总列数
pd.set_option('display.width', 1000)
print(data.head())
print(data.info())

第3行是对数据进行读取,pandas库里面有读取函数调用即可,csv格式是读取写入速度最快的。

第4,5行是为了读取的实话显示全部的列,是因为很多列的话pycharm会把中间一些列隐藏掉,所以我们这为了他不隐藏就加这两行代码。

第6行是显示表头,我们可以看到有什么字段,列名

第7行是显示表的基本信息,每一列有多少数据,字段是什么类型的数据。非空的数据有多少,所以我们第一步就可以看得到基本那一列有空值了。

空值处理

data.info()后我们可以看到大部分数据都有541909行,所以我们大致猜到是Description ,CustomerID 列漏结果了

# 空值处理
print(data.isnull().sum())  # 空值中和,查看每一列的空值
 
# 空值删除
data.drop(columns=['Description'], inplace=True)
print(data.info())
data.isnull()判断是否为空。data.isnumll().sum()计算空值数量。

第5行进行空值删除,这里先删除Description列的空值,inplace=True意思是对数据进行修改,如果没有inplace=True,则不对data进行修改,打印数据还是和之前一样,或者重新定义一个变量进行赋值。

由于这一列空值数据比较少,这一列数据对我们数据分析没有那么重要,所以我们选择删除这一整列。

我们这个表是对客户进行筛选的,所以以CustomerID为准,强制删除其他列

# CustomerID有空值
# 删除所有列的空值
data.dropna(inplace=True)
# print(data.info())
print(data.isnull().sum())  # 由于CustomerID为必须字段,所以强制删除其他列,以CustomerID为准

这里我们先对其他字段进行类型转换

类型转换

# 转换为日期类型
data['InvoiceDate'] = pd.to_datetime(data['InvoiceDate'])
 
# CustomerID 转换为整型
data['CustomerID'] = data['CustomerID'].astype('int')
print(data.info())

以上我们处理了空值,接下来我们处理异常值。

异常值处理

查看表的基本数据分布可以使用describe

print(data.describe())

可以看到数据Quantity 列中最小值为-80995.这列明显有异常值,所以需要对这一列进行异常值筛选。

只需要大于0的值。

data = data[data['Quantity'] > 0]
print(data)

打印一下就只有397924行了。

重复值处理

# 查看重复值
print(data[data.duplicated()])

有5194行重复值,这里的重复值是完全重复的,所以是没用的数据我们可以进行删除。

删除重复值

# 删除重复值
data.drop_duplicates(inplace=True)
 
print(data.info())

删除后对原来的表进行保存,再去查看一下表的基本信息

现在还剩下392730条数据。数据到这一步就完成了数据清洗。空值,异常值,重复值,类型转换。后面一篇文章是对数据进行分析。

到此这篇关于一文带你深入了解Python中的数据清洗的文章就介绍到这了,更多相关Python数据清洗内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python Word文件自动化实战之简历筛选

    Python Word文件自动化实战之简历筛选

    本文将利用Python自动化做一个具有实操性的小练习,即通过读取简历来筛选出符合招聘条件的简历。文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-05-05
  • 使用浏览器访问python写的服务器程序

    使用浏览器访问python写的服务器程序

    这篇文章主要介绍了用浏览器访问python写的服务器程序,本文通过实例代码,需要的朋友可以参考下
    2019-10-10
  • python自动化测试之从命令行运行测试用例with verbosity

    python自动化测试之从命令行运行测试用例with verbosity

    这篇文章主要介绍了python自动化测试之从命令行运行测试用例with verbosity,是一个较为经典的自动化测试实例,需要的朋友可以参考下
    2014-09-09
  • python绘制棉棒图的方法详解

    python绘制棉棒图的方法详解

    这篇文章主要为大家详细介绍了python绘制棉棒图的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • Flask传递URL参数的实现

    Flask传递URL参数的实现

    在Flask中,传递URL参数是一种常见且强大的功能,本文主要介绍了Flask传递URL参数的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-09-09
  • python实现换位加密算法的示例

    python实现换位加密算法的示例

    今天小编就为大家分享一篇python实现换位加密算法的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Python如何读写字节数据

    Python如何读写字节数据

    这篇文章主要介绍了Python如何读写字节数据,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08
  • python35种绘图函数详细总结

    python35种绘图函数详细总结

    Python有许多用于绘图的函数和库,比如Matplotlib,Plotly,Bokeh,Seaborn等,这只是一些常用的绘图函数和库,Python还有其他绘图工具,如Pandas、ggplot等,选择适合你需求的库,可以根据你的数据类型、图形需求和个人偏好来决定,本文给大家总结了python35种绘图函数
    2023-08-08
  • Queue队列中join()与task_done()的关系及说明

    Queue队列中join()与task_done()的关系及说明

    这篇文章主要介绍了Queue队列中join()与task_done()的关系及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python定时发送消息的脚本:每天跟你女朋友说晚安

    Python定时发送消息的脚本:每天跟你女朋友说晚安

    今天小编就为大家分享一篇关于Python定时发送消息的脚本:每天跟你女朋友说晚安的文章,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10

最新评论