iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 八个数据清洗实例代码详解
  • 435
分享到

Python 八个数据清洗实例代码详解

2024-04-02 19:04:59 435人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

如果你经历过数据清洗的过程,你就会明白我的意思。而这正是撰写这篇文章的目的——让读者更轻松地进行数据清洗工作。 事实上,我在不久前意识到,在进行数据清洗时,有

如果你经历过数据清洗的过程,你就会明白我的意思。而这正是撰写这篇文章的目的——让读者更轻松地进行数据清洗工作。

事实上,我在不久前意识到,在进行数据清洗时,有一些数据具有相似的模式。也正是从那时起,我开始整理并编译了一些数据清洗代码,我认为这些代码也适用于其它的常见场景。

由于这些常见的场景涉及到不同类型的数据集,因此本文更加侧重于展示和解释这些代码可以用于完成哪些工作,以便读者更加方便地使用它们。

数据清洗小工具

在下面的代码片段中,数据清洗代码被封装在了一些函数中,代码的目的十分直观。你可以直接使用这些代码,无需将它们嵌入到需要进行少量参数修改的函数中。

1. 删除多列数据


def drop_multiple_col(col_names_list, df): 
    '''
    aiM    -> Drop multiple columns based on their column names 

    INPUT  -> List of column names, df

    OUTPUT -> updated df with dropped columns 
    ------
    '''
    df.drop(col_names_list, axis=1, inplace=True)
    return df

有时,并不是所有列的数据都对我们的数据分析工作有用。因此,「df.drop」可以方便地删掉你选定的列。

2. 转换 Dtypes


def change_dtypes(col_int, col_float, df): 
    '''
    AIM    -> Changing dtypes to save memory

    INPUT  -> List of column names (int, float), df

    OUTPUT -> updated df with smaller memory  
    ------
    '''
    df[col_int] = df[col_int].astype('int32')
    df[col_float] = df[col_float].astype('float32')

当我们面对更大的数据集时,我们需要对「dtypes」进行转换,从而节省内存。如果你有兴趣学习如何使用「pandas」来处理大数据,我强烈推荐你阅读「Why and How to Use Pandas with Large Data」这篇文章(https://towardsdatascience.com/why-and-how-to-use-pandas-with-large-data-9594dda2ea4c)。

3. 将分类变量转换为数值变量


def convert_cat2num(df):
    # Convert cateGorical variable to numerical variable
    num_encode = {'col_1' : {'YES':1, 'NO':0},
                  'col_2'  : {'WON':1, 'LOSE':0, 'DRAW':0}}  
    df.replace(num_encode, inplace=True)  

有一些机器学习模型要求变量是以数值形式存在的。这时,我们就需要将分类变量转换成数值变量然后再将它们作为模型的输入。对于数据可视化任务来说,我建议大家保留分类变量,从而让可视化结果有更明确的解释,便于理解。

4. 检查缺失的数据


def check_missing_data(df):
    # check for any missing data in the df (display in descending order)
    return df.isnull().sum().sort_values(ascending=False)

如果你想要检查每一列中有多少缺失的数据,这可能是最快的方法。这种方法可以让你更清楚地知道哪些列有更多的缺失数据,帮助你决定接下来在数据清洗和数据分析工作中应该采取怎样的行动。

5. 删除列中的字符串


def remove_col_str(df):
    # remove a portion of string in a dataframe column - col_1
    df['col_1'].replace('\n', '', regex=True, inplace=True)

    # remove all the characters after &# (including &#) for column - col_1
    df['col_1'].replace(' &#.*', '', regex=True, inplace=True)

有时你可能会看到一行新的字符,或在字符串列中看到一些奇怪的符号。你可以很容易地使用 df[‘col_1’].replace 来处理该问题,其中「col_1」是数据帧 df 中的一列。

6. 删除列中的空格


def remove_col_white_space(df):
    # remove white space at the beginning of string 
    df[col] = df[col].str.lstrip()

当数据十分混乱时,很多意想不到的情况都会发生。在字符串的开头有一些空格是很常见的。因此,当你想要删除列中字符串开头的空格时,这种方法很实用。

7. 将两列字符串数据(在一定条件下)拼接起来


def concat_col_str_condition(df):
    # concat 2 columns with strings if the last 3 letters of the first column are 'pil'
    mask = df['col_1'].str.endswith('pil', na=False)
    col_new = df[mask]['col_1'] + df[mask]['col_2']
    col_new.replace('pil', ' ', regex=True, inplace=True)  # replace the 'pil' with emtpy space

当你希望在一定条件下将两列字符串数据组合在一起时,这种方法很有用。例如,你希望当第一列以某些特定的字母结尾时,将第一列和第二列数据拼接在一起。根据你的需要,还可以在拼接工作完成后将结尾的字母删除掉。

8. 转换时间戳(从字符串类型转换为日期「DateTime」格式)


def convert_str_datetime(df): 
    '''
    AIM    -> Convert datetime(String) to datetime(fORMat we want)

    INPUT  -> df

    OUTPUT -> updated df with new datetime format 
    ------
    '''
    df.insert(loc=2, column='timestamp', value=pd.to_datetime(df.transdate, format='%Y-%m-%d %H:%M:%S.%f'))

在处理时间序列数据时,你可能会遇到字符串格式的时间戳列。这意味着我们可能不得不将字符串格式的数据转换为根据我们的需求指定的日期「datetime」格式,以便使用这些数据进行有意义的分析和展示。

到此这篇关于python 八个数据清洗实例代码详解的文章就介绍到这了,更多相关Python 数据清洗内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python 八个数据清洗实例代码详解

本文链接: https://www.lsjlt.com/news/163157.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python 八个数据清洗实例代码详解
    如果你经历过数据清洗的过程,你就会明白我的意思。而这正是撰写这篇文章的目的——让读者更轻松地进行数据清洗工作。 事实上,我在不久前意识到,在进行数据清洗时,有...
    99+
    2022-11-13
  • Python实现数据清洗的示例详解
    目录前言去掉信息不全的用户描述答案修补缺失的用户数据描述答案解决牛客网用户重复的数据描述答案统一最后刷题日期的格式描述答案将用户的json文件转换为表格形式描述答案前言 Python...
    99+
    2022-11-11
  • 8个数据清洗Python代码,复制可用,
    最近,大数据工程师Kin Lim Lee在Medium上发表了一篇文章,介绍了8个用于数据清洗的Python代码。 数据清洗,是进行数据分析和使用数据训练模型的必经之路,也是最耗费数据科学家/程序员精力的地方。 这些用于数据清洗的代码有两...
    99+
    2023-01-30
    代码 数据 Python
  • 详解Python中的数据清洗工具flashtext
    目录1、准备flashtext环境2、添加关键词3、提取关键词4、替换关键词5、获取所有关键词6、批量的添加关键词7、批量删除关键词8、执行效率对比在平常的一些的小规模的数据的过滤、...
    99+
    2022-11-13
  • python操作excel实现数据清洗的示例
    本文将为大家详细介绍“python操作excel实现数据清洗的示例”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“python操作excel实现数据清洗的示例”能够给你意想不到的收获,请大家跟着小编的思路慢慢深...
    99+
    2023-06-06
  • python清洗疫情历史数据的过程详解
    目录1. 数据获取2. 使用python读取csv3.使用pyhon进行数据清洗4. 将清洗的数据自动导入MySql在我2020年大三的一个实训的大作业中,我整了一个新冠肺炎疫情的数...
    99+
    2022-11-11
  • python数据清洗系列之字符串处理详解
    前言 数据清洗是一项复杂且繁琐(kubi)的工作,同时也是整个数据分析过程中最为重要的环节。有人说一个分析项目80%的时间都是在清洗数据,这听起来有些匪夷所思,但在实际的工作中确实如此。数据清洗的目的有两个...
    99+
    2022-06-04
    字符串 详解 数据
  • 详解Python如何利用Pandas与NumPy进行数据清洗
    目录准备工作DataFrame 列的删除DataFrame 索引更改DataFrame 数据字段整理str 方法与 NumPy 结合清理列apply 函数清理整个数据集DataFra...
    99+
    2022-11-10
  • Python 实现随机数详解及实例代码
    Python3实现随机数 random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串。 random.seed(x)改变随机数生成器的种子seed。 一般不必特别去设定seed,...
    99+
    2022-06-04
    随机数 详解 实例
  • Android json数据解析详解及实例代码
     Android json数据解析详解 移动开发经常要与服务器数据交互,也常使用json数据格式,那就说说Android json解析。 1.最简单json格式解析...
    99+
    2022-06-06
    json数据 JSON Android
  • python 队列详解及实例代码
    队列特性:先进先出(FIFO)——先进队列的元素先出队列。来源于我们生活中的队列(先排队的先办完事)。 Queue模块最常与threading模块一起构成生产-消费者模型,提供了一个适用于多线程编程的先进...
    99+
    2022-06-04
    队列 详解 实例
  • Android 清除SharedPreferences 产生的数据(实例代码)
    代码如下: 定义:        SharedPreferences preferences ...
    99+
    2022-06-06
    数据 Android
  • 6个实例,8段代码,详解 Python 中的 For 循环
    Python 支持for循环,它的语法与其他语言(如JavaScript 或Java)稍有不同。下面的代码块演示如何在Python中使用for循环来遍历列表中的元素:上述的代码段是将三个字母分行打印的。你可以通过在print语句的后面添加逗...
    99+
    2023-05-14
    Python for 循环
  • python链接sqlite数据库的详细代码实例
    一、创建数据库 创建sqlite数据库的代码 import sqlite3 conn = sqlite3.connect("test.db") print("成功创建数据库") ...
    99+
    2022-11-12
  • Python heapq使用详解及实例代码
    Python heapq 详解 Python有一个内置的模块,heapq标准的封装了最小堆的算法实现。下面看两个不错的应用。 小顶堆(求TopK大) 话说需求是这样的: 定长的序列,求出TopK大的数据。...
    99+
    2022-06-04
    详解 实例 代码
  • 详解python 发送邮件实例代码
    python 发送邮件实例 文件形式的邮件 #!/usr/bin/env python3 #coding: utf-8 import smtplib from emailmimetext impo...
    99+
    2022-06-04
    发送邮件 详解 实例
  • Python for循环详解【附代码实例】
    文章目录 一、for循环二、for循环语法如下三、 for循环应用案例案例一:for循环实现方式案例二:遍历字典案例三:for循环嵌套 四、总结for循环与while循环的异同五、for...
    99+
    2023-09-25
    python 服务器 linux
  • 10行Python代码就能实现的八种有趣功能详解
    目录一、生成二维码二、生成词云三、批量抠图四、文字情绪识别五、识别是否带了口罩六、简易信息轰炸七、识别图片中的文字八、简单的小游戏Python凭借其简洁的代码,赢得了许多开发者的喜爱...
    99+
    2022-11-13
  • Python读取Hive数据库实现代码详解
    目录实际业务读取hive数据库的代码代码说明和领悟后续附上修改成mysql的一个例子代码背景: 在这篇文章之前,我读取数据库的数据没有形成规范,并且代码扩展性不好,使用率不高,而且比...
    99+
    2023-03-01
    Python读取Hive数据库 Python Hive数据库
  • C++实例代码详解友元函数
    目录友元概述普通全局函数作为类的友元类的某个成员函数作为另一个类的友元一个类整体作为另一个类的友元友元的注意事项封装电视机 和遥控器的类友元函数 可以直接操作类的私有数据。 frie...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作