10个Python单行代码技巧,快速搞定数据清洗

10个Python单行代码技巧,快速搞定数据清洗

使用任何数据集之前,都必须进行数据清洗,以便开展进一步分析。常见的数据质量问题包括重复数据、不正确的格式、超出范围的数值以及缺失的数据。

本教程将介绍在Python中用于常见数据清洗任务的一系列单行代码技巧,并以一个示例数据集为基础进行演示。

若想顺利掌握本教程,你需要熟练掌握Python中的列表推导式和字典推导式。让我们开始吧!

生成示例数据

▶️ 这里是本教程对应的GoogleColab笔记本📓。

首先生成示例数据:

data = [ {"name": "alice smith", "age": 30, "email": "alice@example.com", "salary": 50000.00, "join_date": "2022-03-15"}, {"name": "bob gray", "age": 17, "email": "bob@not-an-email", "salary": 60000.00, "join_date": "invalid-date"}, {"name": "charlie brown", "age": None, "email": "charlie@example.com", "salary": -1500.00, "join_date": "15-09-2022"}, {"name": "dave davis", "age": 45, "email": "dave@example.com", "salary": 70000.00, "join_date": "2021-07-01"}, {"name": "eve green", "age": 25, "email": "eve@example.com", "salary": None, "join_date": "2023-12-31"}, ]

现在,我们尝试编写一些代码来解决示例数据中的问题。

1. 字符串首字母大写标准化

jrhz.info

统一数据集中字符串格式很重要。我们将姓名格式统一为首字母大写:

将姓名首字母大写以保持一致性

data = [{**d, "name": d["name"].title} for d in data]

2. 数据类型转换

为确保分析准确,保持数据类型的一致性至关重要。以下代码将年龄转换为整数,转换失败则默认赋值25:

将年龄转换为整数类型,若转换失败则默认25

data = [{**d, "age": int(d["age"]) if isinstance(d["age"], (int, float)) else 25} for d in data]

3. 数值范围校验

我们还需确保数值在合理范围内。以下代码检查年龄是否在18到60之间,否则赋值为默认年龄25:

确保年龄为18-60之间的整数,否则设为25

data = [{**d, "age": d["age"] if isinstance(d["age"], int) and 18 <= d["age"] <= 60 else 25} for d in data]

4. 邮箱格式校验

文本字段格式问题较常见。以下代码检查邮箱格式是否有效,不符合规范则替换为默认邮箱:

验证邮箱包含"@"和".",否则设为'invalid@example.com'

data = [{**d, "email": d["email"] if "@" in d["email"] and "." in d["email"] else "invalid@example.com"} for d in data]

5. 处理缺失值

缺失值在数据集中较为常见,下述代码检查工资是否缺失,若缺失则赋默认值:

若薪资缺失,则默认设为30,000

data = [{**d, "salary": d["salary"] if d["salary"] is not None else 30000.00} for d in data]

6. 日期格式标准化

统一日期格式有助于分析,以下代码将不同日期格式统一,并对无效日期赋予默认日期:

from datetime import datetime

尝试将日期转为标准格式,若无效则默认'2023-01-01'

data = [{**d, "join_date": (lambda x: (datetime.strptime(x, '%Y-%m-%d').date if '-' in x and len(x) == 10 else datetime.strptime(x, '%d-%m-%Y').date) if x and 'invalid-date' not in x else '2023-01-01')(d['join_date'])} for d in data]

但需要注意,这种写法可能不易阅读,建议拆解为多个步骤。

特别声明:[10个Python单行代码技巧,快速搞定数据清洗] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

今年最强惊悚黑马来了,完完全全猜不到结局!(2020惊悚排行榜前十名)

当17个孩子同时摆出纸飞机姿势消失在午夜,整个好莱坞都被这部R级惊悚片炸翻了天! ■,被污名化的女教师:车窗上的&quot;女巫&quot;红漆、跟踪狂家长,比鬼魂更吓人的是集体暴力当相当后一个镜头定格在孩子们空洞的眼神,所

今年最强惊悚黑马来了,完完全全猜不到结局!(2020惊悚排行榜前十名)

D&amp;G 的意式夏日梦境:当50年代风情遇上杜嘉班纳的摩登心跳

Dolce&amp;Gabbana在夏日的热浪中,展现了经典意大利风情与现代设计的完美融合。这不仅是对50年代的致敬,更是将当下与未来的摩登精神融入其中,创造出一种全新的时尚体验。它不是让你回到过去,而是将50年代的…

D&amp;G 的意式夏日梦境:当50年代风情遇上杜嘉班纳的摩登心跳

『张天爱』 | 这也太美了吧!(『张天爱』歌曲mv)

『张天爱』一亮相,那颜值简直像开了“美颜暴击”特效——眉眼如画却带着英气,红唇轻抿时又透着妩媚,连风都好像偏爱她,吹起发丝时都带着慢镜头的美感,网友集体尖叫:“这也太美了吧!电影里她含着泪说“我们受过专业的训练…

『张天爱』 | 这也太美了吧!(『张天爱』歌曲mv)

地球超新鲜》里真实的王玉雯:拒让座、怼颜值,『龚俊』叹 “真虎”(《地球超新鲜》免费观看)

节目的核心是很有趣的,将旅行和美食还有游戏任务结合在一起,里面还会有歌曲传递的环节,考验的是大家的默契。在这一个『娱乐圈』️,有多少的女孩子都会注重于个人的形象,在公共场合根本就不会和其他人有太多的牵扯,可是王玉雯…

《<strong>地球超新鲜</strong>》里真实的王玉雯:拒让座、怼颜值,『龚俊』叹 “真虎”(《<strong>地球超新鲜</strong>》免费观看)

班车时刻表怎么查?实时准点率、停靠站点全解析!🚌(班车信息在哪里查询)

还在为等车焦虑?一份全面的班车时刻表科普来了!从官方渠道到手机APP,教你快速查准点、避拥堵。覆盖城市公交、校园通勤、厂区班车等多种场景,告诉你怎么看、怎么用、选哪趟最靠谱。内含实用技巧与常见误区提醒,助你告别“等车三小时”尴尬局面!

班车时刻表怎么查?实时准点率、停靠站点全解析!🚌(班车信息在哪里查询)