“清洗 Python 分析的数据”一般指的是数据清洗(Data Cleaning),也就是把原始数据中存在的问题(缺失值、重复值、异常值、格式不一致等)处理掉,方便后续分析或建模。
下面我用常见场景 + Python 示例给你一个清晰的操作指南。
最常用的是:
pandas(必学)numpyre(正则)、datetimeimport pandas as pd
import numpy as np
df = pd.read_csv("data.csv")
# 查看缺失值
df.isnull().sum()
# 删除缺失值
df.dropna(inplace=True)
# 用均值/中位数填充
df["age"].fillna(df["age"].mean(), inplace=True)
# 用固定值填充
df["city"].fillna("未知", inplace=True)
# 查看重复行
df.duplicated().sum()
# 删除重复行
df.drop_duplicates(inplace=True)
# 字符转数值
df["price"] = pd.to_numeric(df["price"], errors="coerce")
# 字符转日期
df["date"] = pd.to_datetime(df["date"], errors="coerce")
# 去空格
df["name"] = df["name"].str.strip()
# 转小写
df["city"] = df["city"].str.lower()
# 替换异常字符
df["gender"] = df["gender"].replace({"男": "M", "女": "F"})
# 描述统计
df["age"].describe()
# 删除异常值
df = df[df["age"] < 120]
# 或用箱线法(IQR)
Q1 = df["age"].quantile(0.25)
Q3 = df["age"].quantile(0.75)
IQR = Q3 - Q1
df = df[(df["age"] >= Q1 - 1.5*IQR) & (df["age"] <= Q3 + 1.5*IQR)]
df.columns = [col.strip().lower() for col in df.columns]
import pandas as pd
df = pd.read_csv("user.csv")
# 1. 去重
df.drop_duplicates(inplace=True)
# 2. 缺失值
df["age"].fillna(df["age"].median(), inplace=True)
# 3. 类型转换
df["register_time"] = pd.to_datetime(df["register_time"], errors="coerce")
# 4. 字符串清洗
df["city"] = df["city"].str.strip().str.lower()
# 5. 异常值
df = df[df["age"] < 120]
df.to_csv("clean_data.csv", index=False)
你可以告诉我:
我可以直接帮你写针对你数据的清洗代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。