文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python怎么实现数据清洗

2023-07-06 12:15

关注

本文小编为大家详细介绍“Python怎么实现数据清洗”,内容详细,步骤清晰,细节处理妥当,希望这篇“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行是显示表的基本信息,每一列有多少数据,字段是什么类型的数据。非空的数据有多少,所以我们第一步就可以看得到基本那一列有空值了。

Python怎么实现数据清洗

空值处理

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的值。

Python怎么实现数据清洗

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

打印一下就只有397924行了。

重复值处理

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

Python怎么实现数据清洗

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

删除重复值

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

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

Python怎么实现数据清洗

现在还剩下392730条数据。数据到这一步就完成了数据清洗。

读到这里,这篇“Python怎么实现数据清洗”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯