手把手教你如何利用python进行列表数据清洗

本文介绍Python数据清洗的基本概念和步骤,通过具体案例演示如何使用Python进行数据清洗,包括缺失值处理、异常值检测、数据类型转换等关键任务。

前言

很多小伙伴在学Python的时候,总会遇到资料零散、资源不全、找不到系统学习路径的问题。为了让大家学习更轻松,博主特地准备了一份Python学习大礼包合集,里面包含从入门到进阶的实用资源,适合自学、刷题和项目实践。涵盖方向:
基础入门|进阶提升|数据分析|机器学习 & 深度学习|人工智能 & AIGC|Web开发|自动化办公 & 爬虫|算法与面试准备|工程与就业

博主免费赠送粉丝Python大礼包合集,领取步骤如下:
① 到本文文末点击推广信息。
② 根据提示关注
③ 关注后点击资源分享—>选择Python大礼包即可。

在这里插入图片描述

什么是python领域的数据清洗?

在Python领域,数据清洗是指对数据集进行预处理和整理,以确保数据的质量和可用性。数据清洗是数据分析和机器学习项目中不可或缺的一步,因为现实中的数据通常是不完整、不一致或包含错误的。数据清洗的目标是使数据集变得更加规范、可靠和适合进一步分析。

数据清洗的一些常见任务包括:

  1. 缺失值处理: 处理数据中的缺失值,可以通过删除包含缺失值的行或列,或者使用插值方法填充缺失值。

  2. 异常值处理: 检测和处理数据中的异常值,这些异常值可能是错误的测量、录入错误或表示系统故障。

  3. 重复值处理: 去除数据集中的重复记录,确保每条记录都是唯一的。

  4. 数据类型转换: 确保数据的类型正确,例如将字符串转换为数值类型,以便进行数学运算。

  5. 格式统一: 统一数据的格式,使得数据在整个数据集中保持一致,减少混乱和错误。

  6. 去除不必要的信息: 删除对分析没有帮助的列或行,简化数据集。

  7. 日期和时间处理: 如果数据中包含日期和时间信息,可能需要进行格式转换、提取日期或时间部分,或者计算时间间隔。

  8. 标准化和归一化: 对数值型数据进行标准化或归一化,以确保不同尺度的数据能够在模型训练中平等对待。

在Python中,有许多库和工具可用于数据清洗,如Pandas、NumPy和Scikit-learn等。这些工具提供了丰富的功能,可以方便地进行各种数据清洗操作。

一.准备

利用scrapy crawl 从某网站爬取到近28000组数据,如下表,观察发现,在景区类型一列,有的是普通景区不是A级景区,那么如果我们需要一个都是A级的景区的表格怎么办,手动对于如此庞大的数据量显然不合适,那么,使用python将会非常简单。

在这里插入图片描述
观察上图,发现没有景区的一栏没有任何数据,这显然不利于我们对数据的处理,我们利用wsp的查找替换功能,将None的数据随意替换为一个方便区分的数据。
在这里插入图片描述
如图这48155处数据就是我们不需要的垃圾数据,接下来我们使用python对其进行清洗。

二.利用csv库,读取我们的待处理列表。

因为我是直接把列表放入了py文件的目录下,所以不需要写路径,如果不是同目录需要,写明路径。

import csv
with open('1.csv',"r") as a:
    reader = csv.reader(a)
    list=[]
    for row in reader:
            list.append(row)

这样,我就成功的把csv里面的数据转换为python对象,并成功的将其存入列表list里面。下面我们输出查看一下list里面是什么内容:
在这里插入图片描述
如图,现在我们的list里面是一个二维列表,里面有每一组的数据。
接下来我们观察发现,我们需要区分的景区类别在每一组的第二个位置,也就是类别的第一个下表a[1]。
所以我们写一个循环来遍历这个list,这样就可以在里面的一维列表里面以a[1]来进行筛选我们需要的数据。

三.创建一个新的列表list1=[]

来储存我们筛选之后的数据。

list1=[]
for a in list:
    if a[1] !='无':
        list1.append(a)

我们来看一下list1是不是成功的筛选出来了;
在这里插入图片描述
观察发现,现在每组的第二个数据都是A级景点,说明我们已经筛选成功了,现在我们需要把list1列表里面的数据存入一个新的表格文件就完成了我们需求。
使用pandas库将其转换为DataFrame,之后方便我们存入文件。

name=['名称','景区类型','位置','评分','门票','人气','省份']
test = DataFrame(list1, columns=name)
test.to_csv('e:/testcsv.csv',encoding='gbk')

在这里插入图片描述
如上图所示,我们的对列表清洗的需求完美的实现了。

四.下面贴出完整代码供大家学习


import csv
import numpy as np
from pandas import DataFrame
with open('1.csv',"r") as a:
    reader = csv.reader(a)
    list=[]
    for row in reader:
        list.append(row)
list1=[]
for a in list:
    if a[1] !='无':
        list1.append(a)
        print(a)
x = np.array(list1, dtype = str)
name=['名称','景区类型','位置','评分','门票','人气','省份']
test = DataFrame(list1, columns=name)
test.to_csv('e:/testcsv.csv',encoding='gbk')

五.总结

本文介绍了在Python领域进行数据清洗的基本概念和步骤。数据清洗是数据分析和机器学习项目中不可或缺的一步,其目标是确保数据集的质量和可用性。以下是文章的主要内容和步骤总结:

  1. 数据清洗任务:

    • 数据清洗涉及多个任务,包括处理缺失值、异常值、重复值,进行数据类型转换、格式统一,去除不必要的信息,以及对日期和时间进行处理等。
  2. 准备阶段:

    • 通过示例展示了使用Scrapy爬取的数据,观察并标识需要清洗的数据,特别是对于不需要的数据的标记。
  3. 利用CSV库读取数据:

    • 使用Python的csv库读取CSV文件中的数据,将数据存储在一个列表中。
  4. 创建新的列表进行筛选:

    • 遍历列表,根据特定条件(如景区类型)进行筛选,生成一个新的列表。
  5. 使用Pandas库进行数据处理:

    • 使用pandas库将筛选后的列表转换为DataFrame,利用DataFrame的功能进行数据清洗和处理。
  6. 存储清洗后的数据:

    • 将清洗后的数据存储到一个新的CSV文件中,以便进一步分析或在其他项目中使用。
  7. 代码优化建议:

    • 提供了一些代码优化的建议,如将模块导入集中、使用pandasread_csv函数、添加注释等。

总体而言,本文通过实际示例演示了如何使用Python进行数据清洗,强调了利用现有库和工具的便利性,以提高数据处理的效率和可读性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一键难忘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值