前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【译】Python中的数据清洗 |Pythonic Data Cleaning With NumPy and Pandas(一)

【译】Python中的数据清洗 |Pythonic Data Cleaning With NumPy and Pandas(一)

作者头像
needrunning
发布于 2019-10-08 08:35:25
发布于 2019-10-08 08:35:25
1K00
代码可运行
举报
文章被收录于专栏:图南科技图南科技
运行总次数:0
代码可运行

python中的数据清洗 | Pythonic Data Cleaning With NumPy and Pandas[1]

Python中的数据清洗入门文章,阅读需要一些耐心

生词释意

a handful of columns 少量字段

roughly 初略的 大体的

enforce 强迫实施 执行

github 库

https://github.com/realpython/python-data-cleaning[2]

数据集

  • BL-Flickr-Images-Book.csv[3] – A CSV file containing information about books from the British Library
  • university_towns.txt[4] – A text file containing names of college towns in every US state
  • olympics.csv[5] – A CSV file summarizing the participation of all countries in the Summer and Winter Olympics

这篇文章中主要有以下几个 content

“数据集读取 按需删除字段 清理字段

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> import pandas as pd
>>> import numpy as np

Dropping Columns in a DataFrame

Often, you’ll find that not all the categories of data in a dataset are useful to you. For example, you might have a dataset containing student information (name, grade, standard, parents’ names, and address) but want to focus on analyzing student grades.

In this case, the address or parents’ names categories are not important to you. Retaining these unneeded categories will take up unnecessary space and potentially also bog down runtime.

Pandas provides a handy way of removing unwanted columns or rows from a DataFramewith the `drop()`[6] function. Let’s look at a simple example where we drop a number of columns from a DataFrame.

读取数据集

First, let’s create a DataFrame out of the CSV file ‘BL-Flickr-Images-Book.csv’. In the examples below, we pass a relative path to pd.read_csv, meaning that all of the datasets are in a folder named Datasets in our current working directory:

When we look at the first five entries using the head() method, we can see that a handful of columns provide ancillary information that would be helpful to the library but isn’t very descriptive of the books themselves: Edition Statement, Corporate Author, Corporate Contributors, Former owner, Engraver, Issuance type and Shelfmarks.

我们使用 head()方法查看数据集的前几列基本信息。只有少量的字段对数据是有用的。

通过以下方式删除

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> to_drop = ['Edition Statement',
...            'Corporate Author',
...            'Corporate Contributors',
...            'Former owner',
...            'Engraver',
...            'Contributors',
...            'Issuance type',
...            'Shelfmarks']

>>> df.drop(to_drop, inplace=True, axis=1)

Above, we defined a list that contains the names of all the columns we want to drop. Next, we call the drop() function on our object, passing in the inplace parameter as True and the axis parameter as 1. This tells Pandas that we want the changes to be made directly in our object and that it should look for the values to be dropped in the columns of the object.

我们把需要删除的列,单独以列表的形式,传递给 drop 方法,即可删除

When we inspect the DataFrame again, we’ll see that the unwanted columns have been removed:

重新查看列数

使用定位函数查看

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> df.loc[206]
Place of Publication                                               London
Date of Publication                                           1879 [1878]
Publisher                                                S. Tinsley & Co.
Title                                   Walter Forbes. [A novel.] By A. A
Author                                                              A. A.
Flickr URL              http://www.flickr.com/photos/britishlibrary/ta...
Name: 206, dtype: object

Tidying up Fields in the Data 整理字段

So far, we have removed unnecessary columns and changed the index of our DataFrame to something more sensible. In this section, we will clean specific columns and get them to a uniform format to get a better understanding of the dataset and enforce consistency. In particular, we will be cleaning Date of Publication and Place of Publication.

Upon inspection, all of the data types are currently the object dtype[7], which is roughly analogous to str in native Python.

It encapsulates any field that can’t be neatly fit as numerical or categorical data. This makes sense since we’re working with data that is initially a bunch of messy strings:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> df.get_dtype_counts()
object    6

get_dtype_counts 返回此对象中唯一 dtypes 的计数. 如果一列中含有多个类型,则该列的类型会是 object,同样字符串类型的列也会被当成 object 类型.

One field where it makes sense to enforce a numeric value is the date of publication so that we can do calculations down the road:

出版日期应该强制转换为数字型,方便后续做计算

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

A particular book can have only one date of publication. Therefore, we need to do the following:

一本确定的书,仅有一个确定的出版日期,因此我们需要做以下操作:

Remove the extra dates in square brackets, wherever present: 1879 [1878] 移除中括号内额外的日期

Convert date ranges to their “start date”, wherever present: 1860-63; 1839, 38-54

Completely remove the dates we are not certain about and replace them with NumPy’s NaN: [1897?]

完全清除不确定的日期,用 NumPy 的 NaN 类型替代

Convert the string nan to NumPy’s NaN value

转换 string nan 为 NumPy’s NaN

“统计数据每列为空的数据个数的统计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.isnull().sum()

“查看数据的类型统计

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.get_dtype_counts()

“dataframe 的时候 发现所有 string 类型的 column 都是 object 类型

原文中还有一部分关于数据清理的操作,下篇文章继续翻译和解读。

参考资料

[1]

Pythonic Data Cleaning With NumPy and Pandas: https://realpython.com/python-data-cleaning-numpy-pandas/

[2]

https://github.com/realpython/python-data-cleaning: https://github.com/realpython/python-data-cleaning

[3]

BL-Flickr-Images-Book.csv: https://github.com/realpython/python-data-cleaning/blob/master/Datasets/BL-Flickr-Images-Book.csv

[4]

university_towns.txt: https://github.com/realpython/python-data-cleaning/blob/master/Datasets/university_towns.txt

[5]

olympics.csv: https://github.com/realpython/python-data-cleaning/blob/master/Datasets/olympics.csv

[6]

drop(): https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.drop.html

[7]

dtype: http://pandas.pydata.org/pandas-docs/stable/basics.html#dtypes

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图南科技 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
AIGC已经不是未来,而是现在:2025年最值得关注的6大趋势!
过去一年,AIGC(AI 生成内容)从“概念”彻底走向“落地”。无论你是程序员、产品经理、内容创作者,甚至是业余爱好者,AIGC 已经渗透到每一个内容生产链条中,以一种“你还没准备好,它已经来了”的节奏迅速发展。
用户11295429
2025/06/10
2520
如何利用AI提高内容生产效率?
简介:通过AI技术,可以提升内容生产效率和质量。AI可以帮助自动生成文章、编辑和校对内容,减少人工工作量。同时,AI可以分析用户数据和趋势,提供内容创作建议。此外,AI还可用于图像、音频处理,提供多媒体内容。 AI技术可以自动化工作流程,提高生产效率;优化内容质量,提供个性化推荐。AI还能提供实时反馈,改进创作策略。综上所述,AI技术为内容生产者提供了更高效、高质量的内容创作和管理方式。
正在走向自律
2024/12/18
3160
如何利用AI提高内容生产效率?
了解AIGC:让AI创造内容,改变未来
人工智能生成内容(AIGC, AI-Generated Content),已经成为近年来技术创新的前沿阵地。无论是写文章、作曲、绘画,还是视频制作,AIGC都在以惊人的速度改变着各行各业的创作方式。那么,AIGC究竟是什么?它的发展现状如何?未来又会走向哪里呢?让我们一起全面了解AIGC的方方面面!
人不走空
2024/06/15
5100
AIGC:开启内容创作新纪元,我们如何看待它的影响与前景?
这是一种新的人工智能技术,它利用人工智能模型,根据给定的主题、关键词、格式、风格等条件,自动生成各种类型的文本、图像、音频、视频等内容。AIGC可以广泛应用于媒体、教育、娱乐、营销、科研等领域,为用户提供高质量、高效率、高个性化的内容服务。 AIGC基于多种技术的融合和创新,包括生成对抗网络(GAN)、对比性语言-图像预训练模型(CLIP)、Transformer模型等,这些技术的累积和融合催生了AIGC的爆发。算法的不断迭代创新和预训练模型的引发,使得AI具备了更通用和更强的基础能力。 通过学习和训练大规模数据,AIGC使AI具备了多个不同领域的知识。通过对模型进行适当的调整修正,AI能够完成真实场景的任务,如文本生成、图像创作、音频制作等。这种技术为人类社会打开了认知智能的大门,改变了基础的生产力工具,可能会促使整个社会生产力发生质的突破。chatGpt的出现带来的影响便是一个很好的例子。
E绵绵
2024/05/03
1.8K0
AIGC:开启内容创作新纪元,我们如何看待它的影响与前景?
【AI】AI在创造还是毁掉音乐?
AI技术在音乐生成领域的应用已经取得了显著的进展,从实验室的研究成果逐步走向商业应用。以下是国内外一些主要的AI音乐生成平台和技术,它们正在重新定义音乐创作的未来:
人不走空
2024/06/23
2290
AIGC与娱乐产业:颠覆创意与生产的新力量
随着人工智能技术的飞速发展,**生成式AI(AIGC)**已经不再是科幻小说中的概念,它正在逐步融入各行各业,尤其是娱乐产业。从自动生成的音乐、电影剧本、到虚拟演员的出现,AIGC正彻底改变娱乐产业的创意和生产方式。本文将深入探讨AIGC如何在娱乐产业中发挥作用,带来哪些机遇和挑战,并提供实际的代码示例,展示AIGC如何为娱乐创作带来创新。
云边有个稻草人
2024/12/29
2790
AIGC时代下的视频创作革命:重塑内容生产格局
在人工智能技术不断突破的今天,AI Generated Content(AIGC)已经成为内容创作领域的一股强大力量。特别是在视频制作方面,AIGC正以其独特的优势,改变着传统视频生产的模式,为创作者和观众带来前所未有的体验。本文将深入探讨AIGC在视频领域的应用、影响以及未来的发展趋势。
七条猫
2024/08/13
5550
AIGC与人类创意的融合:AI作为创意工具与协作创作的未来
人工智能(AI)技术在近年来的飞速发展改变了多个领域,其中创意产业尤为突出。AI不再仅仅是一个工具,它逐渐成为了创作过程中的得力助手,与人类的创意结合,共同完成各种艺术创作。特别是AIGC(人工智能生成内容)的出现,让AI不仅仅局限于执行任务,它也开始参与到艺术创作、音乐制作、小说写作等活动中。许多人认为,AI应该作为创作过程中的一个工具,而非替代品。它能够为创作者提供灵感,辅助构思,但最终的创作和决策依然需要依赖人类的创意和判断。
云边有个稻草人
2024/12/29
3110
AIGC:人工智能生成内容的未来趋势与挑战
在信息化、数字化加速发展的背景下,AIGC(AI-Generated Content,人工智能生成内容)正迅速成为内容创作领域的新兴趋势。从简单的文本生成到艺术品、音乐、视频的复杂创作,AIGC 技术的应用范围在不断扩展,它已经开始深刻改变创作、传播和消费内容的方式。借助强大的算法、海量的数据以及日趋成熟的人工智能技术,AIGC 不仅能够快速生成高质量的内容,还能实现个性化、定制化的内容输出,这使其在各行业的影响力不断增强。
suye
2024/11/07
8960
AIGC:人工智能生成内容的未来趋势与挑战
要说2024年最热的技术,还得是AIGC
AIGC,即AI生成内容(Artificial Intelligence Generated Content),已经成为近年来人工智能领域的一个重要方向。简单来说,AIGC就是利用人工智能技术,尤其是深度学习、自然语言处理等方法,来自动生成文本、图像、音频、视频等多种形式的内容。
正在走向自律
2024/12/17
1190
要说2024年最热的技术,还得是AIGC
借势AI系列:AI赋能视频剪辑-自动化技术如何改变内容创作
在当今内容制作领域,视频已成为最主流的表达方式之一,然而,视频编辑通常是一个耗时且复杂的过程。随着人工智能生成内容(AIGC)的迅速发展,智能视频剪辑技术已逐渐成为提升视频编辑效率的利器。本篇文章将深入探讨AI如何提升视频剪辑的效率,展示相关技术的实现,并通过代码实例来阐述具体的操作流程。
一键难忘
2024/10/20
1.3K0
【机器学习】音乐生成——AI如何创作个性化音乐与配乐
音乐是人类文化的重要组成部分,它具有极强的情感表达和艺术价值。近年来,随着人工智能技术的飞速发展,AI已经能够自动生成音乐,甚至根据用户需求创作个性化配乐。AI生成音乐的应用场景广泛,覆盖了广告、电影、游戏等行业。本篇博客将深入探讨机器学习如何驱动音乐生成,并通过代码示例展示如何使用AI进行简单的音乐创作。
2的n次方
2024/10/15
4400
【机器学习】音乐生成——AI如何创作个性化音乐与配乐
AIGC全面介绍
AIGC通常指的是“AIGC国际版图冠军赛”(AIGC International Grand Challenge),但这种说法并不常见,可能引起混淆。更广泛熟知的概念应该是AIGC被误解了,实际上可能是想指AIGC相关的技术领域,即AI Generated Content,这是指由人工智能生成的内容。
终有链响
2024/07/29
2720
领略人工智能生成内容(AIGC)的奇妙世界
人工智能生成内容(AIGC)作为当今技术领域的热点之一,正以其强大的应用案例和技术基础深刻影响着各行各业。
一条晒干的咸鱼
2024/11/19
1530
领略人工智能生成内容(AIGC)的奇妙世界
AIGC个性化与定制化内容生成:技术与应用的前沿探索
随着人工智能技术的迅猛发展,生成式AI(AIGC,Artificial Intelligence Generated Content)逐渐成为各行各业的热门话题,特别是在内容创作和个性化推荐方面。个性化和定制化内容生成作为AIGC技术的重要应用场景之一,正在变革传统的内容生产模式,提供更符合用户需求、兴趣和情感的内容。这种趋势不仅在新闻、广告、社交媒体等领域表现突出,还在教育、娱乐、电子商务等行业中得到广泛应用。
云边有个稻草人
2025/01/03
7140
Diffusion的火,只是AIGC的缩影 | 量子位智库报告(附下载)
量子位智库 发自 凹非寺 量子位 | 公众号 QbitAI AIGC(AI生成内容),这个概念最近可以说是火得一塌糊涂。 例如Stable Diffusion,只要对它说一句话,“唰唰唰”地就能秒生成画作: Big chunky Venom(巨大敦实的毒液). 知名博主大谷Spitzer还用它“翻拍了”好莱坞国际巨星版的《华强买瓜》: 还有此前谷歌家的Imagen、OpenAI出的DALL·E系列等,也都成了备受网友们热捧的AI内容生成神器。 甚至还有人拿着Midjourney生成的画作参加艺术比赛,碾
量子位
2022/09/27
1K0
Diffusion的火,只是AIGC的缩影 | 量子位智库报告(附下载)
DeepSeek:开启AIGC全链路内容创作新时代(10/18)
摘要:DeepSeek作为新兴领先的人工智能企业,凭借其强大的语言理解和生成能力,在垂直领域文案生成、短视频脚本与分镜自动生成以及版权保护水印技术等方面展现出卓越的创新与实践能力。在法律和医疗领域,其文案生成解决方案显著提升工作效率和专业准确性;推出的短视频脚本生成技术,快速为创作者提供创意框架;版权保护水印技术有效保障AIGC内容的知识产权,推动AIGC行业健康、可持续发展。
正在走向自律
2025/02/25
1970
DeepSeek:开启AIGC全链路内容创作新时代(10/18)
《探索视频数字人:开启未来视界的钥匙》
在当今科技飞速发展的时代,视频数字人技术如一颗璀璨的新星,正逐渐成为各领域瞩目的焦点。它的出现,犹如一场科技风暴,彻底改变了传统的视频制作方式,为各个行业带来了前所未有的机遇与挑战。
正在走向自律
2024/12/18
1840
《探索视频数字人:开启未来视界的钥匙》
从文本到图像:AIGC 如何改变内容生产的未来
在过去的几年里,人工智能生成内容(AIGC)技术迅速崛起,从基础的文本生成到更复杂的图像、音频甚至视频生成。如今,AIGC 已经不仅仅是技术研究中的一个概念,而是正在推动各行各业进行内容创作的深刻变革。尤其是在“从文本到图像”的应用上,AIGC 展现了前所未有的潜力,重新定义了我们对内容创作和传播的理解。
用户11295429
2024/11/15
1K0
从AI明星翻唱到数字生命:声音复刻背后的「提效与温情」
2023年,AI技术在音乐领域掀起了一场空前的怀旧热潮,以“AI明星翻唱”为代表的歌曲风靡全网,成为了众多粉丝的新宠。
腾讯云AI
2024/03/18
5900
从AI明星翻唱到数字生命:声音复刻背后的「提效与温情」
推荐阅读
相关推荐
AIGC已经不是未来,而是现在:2025年最值得关注的6大趋势!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档