数据清洗,说白了就是处理那些“不听话”的数据,把它们整理成我们需要的样子。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)
小贴士:条件之间用 &
(且)和 |
(或),别写成 and
和 or
哦。
5. 数据清洗的进阶操作:列表推导式让效率翻倍
在处理复杂需求时,列表推导式是个神器。比如快速给某列数据打标签。
数据标记
# 给年龄大于18的打上"成人"标签,小于等于18的打"未成年"
df['标签'] = ['成人' if age > 18 else '未成年' for age in df['年龄']]
print(df)
这种写法干净利落,适合喜欢代码“美学”的朋友。
简单回顾一下:
- 处理缺失值,用
fillna()
或dropna()
。 - 清理重复值,用
duplicated()
和drop_duplicates()
。 - 格式统一,用字符串操作和日期转换。
- 数据筛选,灵活运用布尔条件。
- 列表推导式,复杂需求下的好帮手。
掌握这些基础操作,Python数据清洗就算入门了!
彩蛋时间
走过路过不要错过,为大家准备了一份pycharm破解工具,感兴趣的朋友可以看看哈:最新pycharm破解
评论区