🧹 数据清洗进阶技巧
- 处理缺失值:使用
df.fillna()
时可指定method='ffill'
实现前向填充 - 重复数据处理:
df.drop_duplicates()
支持subset
参数精准去重 - 类型转换:
pd.to_datetime()
可解析复杂日期格式,如pd.to_datetime('2023-04-05', format='%Y-%m-%d')
- 字符串操作:
str.contains()
配合正则表达式实现灵活文本匹配数据处理流程
🧮 分组聚合深度实践
- 使用
groupby()
时注意:df.groupby('category').mean()
会自动排除非数值列 - 多级分组:
df.groupby(['date', 'region']).sum()
- 自定义聚合函数:
df.groupby('col').agg({'col2': ['mean', 'std'], 'col3': 'sum'})
- 聚合后重置索引:
grouped.reset_index()
⏱ 时间序列分析专项
- 日期范围生成:
pd.date_range(start='2023-01-01', periods=10)
- 时间偏移操作:
df['date'] + pd.Timedelta('7D')
- 频率转换:
df.resample('W').mean()
将日数据转换为周数据 - 时间戳格式化:
df['date'].dt.strftime('%Y年%m月')
⚡ 性能优化技巧
- 使用
category
类型替代字符串:df['col'] = df['col'].astype('category')
- 增量读取数据:
pd.read_csv('large_file.csv', chunksize=10000)
- 向量化操作:避免使用循环,改用
df.apply()
或内置函数 - 内存管理:
df.memory_usage()
用于监控内存使用情况
数据清洗
💡 小贴士:当处理超大数据集时,建议使用
dask
库进行分布式计算,可参考 分布式数据处理指南 获取更多信息。