📚 目录
- 数据清洗简介
- 处理缺失数据
- 重复数据处理
- 数据类型转换
- 数据标准化与归一化
- 字符串操作与清理
- 参考资料
- 出站链接
1. 数据清洗简介
数据清洗是数据分析中的一个重要步骤,指的是清理、转换、整合并准备数据,确保数据的质量,去除无效、重复或错误的信息。Pandas 提供了强大的工具来处理各种数据清洗任务。
2. 处理缺失数据
缺失数据是数据清洗中的常见问题。Pandas 提供了多个方法来处理这些缺失值:
✅ 检查缺失值:
df.isnull().sum() # 每列缺失值的数量
✅ 删除缺失值:
df.dropna() # 删除包含缺失值的行
df.dropna(axis=1) # 删除包含缺失值的列
✅ 填充缺失值:
df.fillna(value=0) # 用 0 填充缺失值
df.fillna(method='ffill') # 用前一个有效值填充
3. 重复数据处理
数据集可能包含重复的记录,Pandas 提供了处理重复数据的方法:
✅ 检查重复数据:
df.duplicated() # 返回布尔值,标记重复行
✅ 删除重复数据:
df.drop_duplicates() # 删除重复行
✅ 保留首次或最后一项:
df.drop_duplicates(keep='first') # 保留第一次出现的记录
df.drop_duplicates(keep='last') # 保留最后一次出现的记录
4. 数据类型转换
数据类型不一致可能会影响分析结果,Pandas 提供了 astype()
方法来转换列的数据类型。
✅ 转换数据类型:
df['Age'] = df['Age'].astype(float) # 将年龄列转换为浮动类型
df['Date'] = pd.to_datetime(df['Date']) # 转换日期列为日期格式
5. 数据标准化与归一化
在一些分析任务中,特别是机器学习模型中,需要对数据进行标准化(使数据服从标准正态分布)或归一化(将数据缩放到指定范围)。
✅ 数据标准化:
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
df[['Age', 'Income']] = scaler.fit_transform(df[['Age', 'Income']])
✅ 数据归一化:
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df[['Age', 'Income']] = scaler.fit_transform(df[['Age', 'Income']])
6. 字符串操作与清理
Pandas 提供了一些非常强大的字符串方法,可以方便地清理和操作文本数据。
✅ 字符串去除空格:
df['Name'] = df['Name'].str.strip() # 去除字符串两端的空格
✅ 替换字符:
df['City'] = df['City'].str.replace('New York', 'NYC')
✅ 提取子串:
df['Initial'] = df['Name'].str[0] # 提取姓名的首字母
📖 参考资料
- Pandas 官方数据清洗文档:https://pandas.pydata.org/docs/user_guide/handling_missing_data.html
- 《Python for Data Analysis》第七章:数据清洗
- Real Python – Data Cleaning with Pandas:https://realpython.com/python-data-cleaning-numpy-pandas/
发表回复