侧边栏壁纸
  • 累计撰写 107 篇文章
  • 累计创建 2 个标签
  • 累计收到 5 条评论
标签搜索

目 录CONTENT

文章目录

用Python搞定数据清洗,就这么简单!

小白码上飞
2024-12-22 / 0 评论 / 0 点赞 / 113 阅读 / 975 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-12-22,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

数据清洗,说白了就是处理那些“不听话”的数据,把它们整理成我们需要的样子。Python有一大堆工具可以用,今天咱们聚焦几个核心操作:缺失值处理、重复值删除、格式统一化,以及如何高效筛选数据。每个环节都带你写点小代码,走起!


1. 缺失值处理:别让空值挡了路

现实中的数据集,十有八九会有缺失值,这种数据用不了。解决方法很简单,要么补上,要么扔掉。

补全缺失值

import pandas as pd

# 创建一个例子数据框
data = {'姓名': ['小明', '小红', None], '年龄': [25, None, 30]}
df = pd.DataFrame(data)

# 用指定值填充
df['年龄'].fillna(18, inplace=True)

# 用前一个值填充
df['姓名'].fillna(method='ffill', inplace=True)

print(df)

运行后,NaN 就会被补上。温馨提示:前后值填充时要小心,别让数据跑偏了。

删除缺失值

df.dropna(inplace=True)
print(df)

直接干掉含空值的行,简单粗暴但好用。


2. 重复值删除:别让数据“复读机”

重复数据不仅拖累计算,还可能误导分析。查重和删重,分分钟搞定。

查找重复值

# 查找重复的行
duplicates = df.duplicated()
print(duplicates)

删除重复值

# 删除重复的行
df.drop_duplicates(inplace=True)
print(df)

删除后,数据集立马“瘦身”成功。


3. 格式统一化:让数据变得井井有条

数据乱七八糟的格式,真是让人抓狂,比如大小写不一致、日期格式不统一。这些问题Python可以轻松搞定。

统一大小写

# 全部转换为小写
df['姓名'] = df['姓名'].str.lower()
print(df)

处理日期格式

# 转换日期格式
df['日期'] = pd.to_datetime(df['日期'], format='%Y-%m-%d')
print(df)

温馨提示:如果日期格式混乱,记得用 errors='coerce',它会自动把识别不了的日期填成 NaT


4. 数据筛选:精准锁定你想要的

筛选数据的场景太常见了,比如找年龄大于18的,筛选出特定名字的行。

条件筛选

# 筛选年龄大于18的行
filtered = df[df['年龄'] > 18]
print(filtered)

多条件筛选

# 筛选年龄大于18且姓名是小明的行
filtered = df[(df['年龄'] > 18) & (df['姓名'] == '小明')]
print(filtered)

小贴士:条件之间用 &(且)和 |(或),别写成 andor 哦。


5. 数据清洗的进阶操作:列表推导式让效率翻倍

在处理复杂需求时,列表推导式是个神器。比如快速给某列数据打标签。

数据标记

# 给年龄大于18的打上"成人"标签,小于等于18的打"未成年"
df['标签'] = ['成人' if age > 18 else '未成年' for age in df['年龄']]
print(df)

这种写法干净利落,适合喜欢代码“美学”的朋友。


简单回顾一下:

  • 处理缺失值,用 fillna()dropna()
  • 清理重复值,用 duplicated()drop_duplicates()
  • 格式统一,用字符串操作和日期转换。
  • 数据筛选,灵活运用布尔条件。
  • 列表推导式,复杂需求下的好帮手。

掌握这些基础操作,Python数据清洗就算入门了!

彩蛋时间

走过路过不要错过,为大家准备了一份pycharm破解工具,感兴趣的朋友可以看看哈:最新pycharm破解

0

评论区