iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >详解Python如何利用Pandas与NumPy进行数据清洗
  • 668
分享到

详解Python如何利用Pandas与NumPy进行数据清洗

2024-04-02 19:04:59 668人浏览 八月长安

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

摘要

目录准备工作DataFrame 列的删除DataFrame 索引更改DataFrame 数据字段整理str 方法与 NumPy 结合清理列apply 函数清理整个数据集DataFra

许多数据科学家认为获取和清理数据的初始步骤占工作的 80%,花费大量时间来清理数据集并将它们归结为可以使用的形式。

因此如果你是刚刚踏入这个领域或计划踏入这个领域,重要的是能够处理杂乱的数据,无论数据是否包含缺失值、不一致的格式、格式错误的记录还是无意义的异常值。

将利用 pythonpandas和 NumPy 库来清理数据。

准备工作

导入模块后就开始正式的数据预处理吧。

import pandas as pd
import numpy as np

DataFrame 列的删除

通常会发现并非数据集中的所有数据类别都有用。例如可能有一个包含学生信息(姓名、年级、标准、父母姓名和地址)的数据集,但希望专注于分析学生成绩。在这种情况下地址或父母的姓名并不重要。保留这些不需要的数据将占用不必要的空间。

BL-Flickr-Images-Book.csv 数据操作。

df = pd.read_csv('数据科学必备Pandas、NumPy进行数据清洗/BL-Flickr-Images-Book.csv')
df.head()

可以看到这些列是对 Edition Statement, Corporate Author, Corporate Contributors, FORMer owner, Engraver, Issuance type and Shelfmarks 没有任何信息帮助的,因此可以进行批量删除处理。

to_drop_column = [ 'Edition Statement',
                   'Corporate Author',
                   'Corporate Contributors',
                   'Former owner',
                   'Engraver',
                   'Contributors',
                   'Issuance type',
                   'Shelfmarks']

df.drop(to_drop_column , inplace=True, axis=1)
df.head()

DataFrame 索引更改

Pandas 索引扩展了 NumPy 数组的功能,以允许更通用的切片和标记。 在许多情况下,使用数据的唯一值标识字段作为其索引是有帮助的。

获取唯一标识符。

df['Identifier'].is_unique
True

Identifier列替换索引列。

df = df.set_index('Identifier')
df.head()

206 是索引的第一个标签,可以使用 df.iloc[0] 基于位置的索引访问。

DataFrame 数据字段整理

清理特定列并将它们转换为统一格式,以更好地理解数据集并强制保持一致性。

处理 Date of Publication 出版日期 列,发现该数据列格式并不统一。

df.loc[1905:, 'Date of Publication'].head(10)

Identifier
1905           1888
1929    1839, 38-54
2836           1897
2854           1865
2956        1860-63
2957           1873
3017           1866
3131           1899
4598           1814
4884           1820
Name: Date of Publication, dtype: object

我们可以使用正则表达式的方式直接提取连续的4个数字即可。

extr = df['Date of Publication'].str.extract(r'^(\d{4})', expand=False)
extr.head()

Identifier
206    1879
216    1868
218    1869
472    1851
480    1857
Name: Date of Publication, dtype: object

最后获取数字字段列。

df['Date of Publication'] = pd.to_numeric(extr)

str 方法与 NumPy 结合清理列

df[‘Date of Publication’].str 。 此属性是一种在 Pandas 中访问快速字符串操作的方法,这些操作在很大程度上模仿了对原生 Python 字符串或编译的正则表达式的操作,例如 .split()、.replace() 和 .capitalize()。

要清理 Place of Publication 字段,我们可以将 Pandas 的 str 方法与 NumPy 的 np.where 函数结合起来,该函数基本上是 excel 的 IF() 宏的矢量化形式。

np.where(condition, then, else)

在这里 condition 要么是一个类似数组的对象,要么是一个布尔掩码。 then 是如果条件评估为 True 时使用的值,否则是要使用的值。

本质上 .where() 获取用于条件的对象中的每个元素,检查该特定元素在条件上下文中的计算结果是否为 True,并返回一个包含 then 或 else 的 ndarray,具体取决于哪个适用。可以嵌套在复合 if-then 语句中,允许根据多个条件计算值.

处理 Place of Publication 出版地 数据。

df['Place of Publication'].head(10)

Identifier
206                                  London
216                London; Virtue & Yorston
218                                  London
472                                  London
480                                  London
481                                  London
519                                  London
667     pp. 40. G. Bryan & Co: Oxford, 1898
874                                 London]
1143                                 London
Name: Place of Publication, dtype: object

使用包含的方式提取需要的数据信息。

pub = df['Place of Publication']
london = pub.str.contains('London')
london[:5]

Identifier
206    True
216    True
218    True
472    True
480    True
Name: Place of Publication, dtype: bool

也可以使用 np.where 处理。

df['Place of Publication'] = np.where(london, 'London',
                                      pub.str.replace('-', ' ')))

Identifier
206                     London
216                     London
218                     London
472                     London
480                     London
                  ...         
4158088                 London
4158128                  Derby
4159563                 London
4159587    Newcastle upon Tyne
4160339                 London
Name: Place of Publication, Length: 8287, dtype: object

apply 函数清理整个数据集

在某些情况下,将自定义函数应用于 DataFrame 的每个单元格或元素。 Pandas.apply() 方法类似于内置的 map() 函数,只是将函数应用于 DataFrame 中的所有元素。

例如将数据的发布日期进行处理成 xxxx 年的格式,就可以使用apply。

def clean_date(text):
    try:
        return str(int(text)) + "年"
    except:
        return text

df["new_date"] = df["Date of Publication"].apply(clean_date)
df["new_date"] 

Identifier
206        1879年
216        1868年
218        1869年
472        1851年
480        1857年
           ...  
4158088    1838年
4158128    1831年
4159563      NaN
4159587    1834年
4160339    1834年
Name: new_date, Length: 8287, dtype: object

DataFrame 跳过行

olympics_df = pd.read_csv('数据科学必备Pandas、NumPy进行数据清洗/olympics.csv')
olympics_df.head()

可以在读取数据时候添加参数跳过某些不要的行,比如索引 0 行。

olympics_df = pd.read_csv('数据科学必备Pandas、NumPy进行数据清洗/olympics.csv',header=1)
olympics_df.head()

DataFrame 重命名列

new_names =  {'Unnamed: 0': 'Country',
              '? Summer': 'Summer Olympics',
               '01 !': 'Gold',
              '02 !': 'Silver',
              '03 !': 'Bronze',
              '? Winter': 'Winter Olympics',
              '01 !.1': 'Gold.1',
              '02 !.1': 'Silver.1',
              '03 !.1': 'Bronze.1',
              '? Games': '# Games',
              '01 !.2': 'Gold.2',
              '02 !.2': 'Silver.2',
              '03 !.2': 'Bronze.2'}

olympics_df.rename(columns=new_names, inplace=True)

olympics_df.head()

以上就是详解Python如何利用Pandas与NumPy进行数据清洗的详细内容,更多关于Python数据清洗的资料请关注编程网其它相关文章!

--结束END--

本文标题: 详解Python如何利用Pandas与NumPy进行数据清洗

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

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

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

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

下载Word文档
猜你喜欢
  • 详解Python如何利用Pandas与NumPy进行数据清洗
    目录准备工作DataFrame 列的删除DataFrame 索引更改DataFrame 数据字段整理str 方法与 NumPy 结合清理列apply 函数清理整个数据集DataFra...
    99+
    2024-04-02
  • Python怎么利用Pandas与NumPy进行数据清洗
    本文小编为大家详细介绍“Python怎么利用Pandas与NumPy进行数据清洗”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python怎么利用Pandas与NumPy进行数据清洗”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-06-30
  • 利用pandas进行数据清洗的方法
    目录1、完整性1.1 缺失值1.2 空行2、全面性列数据的单位不统一3、合理性 非ASCII字符4、唯一性4.1 一列有多个参数4.2 重复数据我们有下面的一个数据,利用其...
    99+
    2024-04-02
  • 如何用Python进行数据清洗
    这篇文章主要介绍“如何用Python进行数据清洗”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何用Python进行数据清洗”文章能帮助大家解决问题。 数据清洗是...
    99+
    2024-04-02
  • 怎么在Python中使用Pandas进行数据清洗
    怎么在Python中使用Pandas进行数据清洗?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python的五大特点是什么python的五大特点:1.简单易学,...
    99+
    2023-06-14
  • 利用Python进行数据清洗的操作指南
    目录缺失值异常值数据不一致无效数据重复数据数据泄漏问题你一定听说过这句著名的数据科学名言: 在数据科学项目中, 80% 的时间是在做数据处理。 如果你没有听过,那么请记住:数据清洗是...
    99+
    2024-04-02
  • 怎么使用Python进行数据清洗
    这篇文章主要讲解了“怎么使用Python进行数据清洗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Python进行数据清洗”吧!缺失值当数据集中包含缺失数据时,在填充之前可以先进行一...
    99+
    2023-07-06
  • 学会使用pandas进行高效的数据清洗步骤
    快速上手!使用Pandas进行数据清洗的方法 引言:随着数据的快速增长和不断积累,数据清洗成为了数据分析过程中不可忽视的一部分。而Pandas是Python中一种常用的数据分析工具库。它提供了高效且灵活的数据结构,使得数据清洗变...
    99+
    2024-01-24
    快速上手
  • 如何在Python中进行数据清洗和处理
    如何在Python中进行数据清洗和处理数据清洗和处理是数据分析和挖掘过程中非常重要的一步。清洗和处理数据可以帮助我们发现数据中的问题、缺失或异常,并且为后续的数据分析和建模提供准备。本文将介绍如何使用Python进行数据清洗和处理,并提供具...
    99+
    2023-10-22
    Python编程(Python programming) 数据清洗(Data Cleaning) 数据处理(Data P
  • 使用Python进行数据清洗的完整指南
    你一定听说过这句著名的数据科学名言:在数据科学项目中, 80% 的时间是在做数据处理。如果你没有听过,那么请记住:数据清洗是数据科学工作流程的基础。 机器学习模型会根据你提供的数据执行,混乱的数据会导致性能下降甚至错误的结果,而干净的数据是...
    99+
    2023-05-14
    Python 数据集 数据清洗
  • PHP 中使用 Elasticsearch 进行数据清洗与聚合计算
    概要:本文将介绍如何在 PHP 中使用 Elasticsearch 进行数据清洗和聚合计算。Elasticsearch 是一个强大而灵活的分布式搜索和分析引擎,它可以帮助我们通过对数据进行索引和查询来进行数据清洗和聚合计算。本文将通过具体的...
    99+
    2023-10-21
    PHP 数据清洗 elasticsearch 聚合计算
  • 如何利用Python和Numpy进行高效数据处理?
    当今时代,数据处理已经成为了各个行业的必备技能。而Python和Numpy作为数据科学领域中最受欢迎的工具之一,它们的高效性和易用性已经得到了广泛的认可。在本文中,我们将会介绍一些Python和Numpy的高效数据处理技巧,并且会穿插一些演...
    99+
    2023-08-11
    日志 numy load
  • mysql如何利用binlog进行数据恢复详解
    前言 最近线上误操作了一个数据,由于是直接修改的数据库,所有唯一的恢复方式就在mysql的binlog。binlog使用的是ROW模式,即受影响的每条记录都会生成一个sql。同时利用了binlog2sql项...
    99+
    2024-04-02
  • 如何使用pandas进行数据分析
    这篇文章主要介绍了如何使用pandas进行数据分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。(一)获取微信好友的数据为了获取微信好友的数据,需要使用一个工具,叫itcha...
    99+
    2023-06-19
  • 如何利用Pandas读取某列某行数据
    小编给大家分享一下如何利用Pandas读取某列某行数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!实际操作中我们经常需要寻找数据的某行或者某列,这里介绍我在使用...
    99+
    2023-06-29
  • 如何在Python中使用Numpy进行数据可视化?
    Numpy是Python中一个非常流行的科学计算库,它提供了高效的多维数组操作以及各种数学函数。在数据分析和可视化方面,Numpy也是一个非常强大的工具。本文将介绍如何使用Numpy进行数据可视化。 一、安装Numpy 在使用Numpy之...
    99+
    2023-08-11
    日志 numy load
  • 异步编程与Python:如何使用numpy进行高效的数据索引?
    异步编程与Python:如何使用numpy进行高效的数据索引? 在数据处理和分析的过程中,数据索引是必不可少的操作。Python中的numpy库提供了强大的数据索引功能,可以帮助我们高效地对数据进行操作。本文将介绍异步编程和numpy库的结...
    99+
    2023-09-02
    索引 异步编程 numpy
  • PHP、JavaScript和NumPy:如何利用日志数据进行深入分析?
    日志是每个网站的重要组成部分,它们记录了网站的活动和用户行为。利用日志数据进行深入分析可以帮助网站管理者更好地了解用户需求和网站性能,从而做出更好的决策。在这篇文章中,我们将介绍如何使用PHP、JavaScript和NumPy来分析和可视...
    99+
    2023-06-29
    numy 日志 javascript
  • PHP、NumPy 和 NPM:如何利用索引数据进行高效编程?
    在编程中,索引是一个重要的概念。索引是指在数组、列表、矩阵等数据结构中,确定某个元素位置的方式。在 PHP、NumPy 和 NPM 中,索引数据可以帮助我们更高效地编程。本文将介绍如何利用索引数据进行高效编程。 PHP 中的索引数据 在 ...
    99+
    2023-10-16
    numpy npm 索引
  • 使用NumPy进行数组数据处理的示例详解
    目录介绍Ndarray1.ndarray的操作2.ndarray的参数3.例子介绍 NumPy是Python中用于数值计算的核心包之一,它提供了大量的高效数组操作函数和数学函数。它支...
    99+
    2023-03-22
    NumPy数组数据处理 NumPy 数据处理 NumPy数组数据
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作