pandas读取时应同步处理缺失值和数据类型:用na_values识别自定义空值,dtype显式指定类型,parse_dates处理混合日期格式,low_memory=False避免类型推断错误。
用
读取时就该处理缺失和类型
很多人把清洗拆成“先读再洗”,结果中间生成一堆
或
类型列,后续
和
处理起来反而出错。读取阶段就能压掉 60% 的脏数据问题。
实操建议:
立即学习
“
Python免费学习笔记(深入)
”;
用
补充识别自定义空值,比如
;
用
显式指定列类型,避免
列混入字符串后自动变成
;
对含日期的列,直接用
+
(如需处理
和
混用);
加
防止分块推断类型失败导致警告或隐式转换。
去重不是只调
表面重复不等于逻辑重复。比如用户表里
列大小写不一致、前后空格未清理,
就会漏掉;又或者订单表里
相同但
差 0.01 元,是录入误差还是真实退款?不能无脑删。
实操建议:
立即学习
“
Python免费学习笔记(深入)
”;
去重前先做标准化:用
清理文本键;
对数值型关键字段(如金额),考虑用
统一精度再比对;
用
或
明确策略,别依赖默认值;
保留原始索引或加标记列(如
),方便回溯。
写得越“像 Python”越容易慢
写个
看着清楚,但每行都进 Python 解释器,10 万行可能卡 3 秒;而向量化操作(如
、
)底层走的是 C,快一个数量级。
Python 3.14.3
微软官方的 Python 扩展,是 VS Code 安装量最高的扩展(209M+)。集成 IntelliSense(通过 Pylance)、调试(通过 Python Debugger)、代码检查、格式化、重构和单元测试等功能。支持 Jupyter Notebook、虚拟环境管理和多 Python 版本切换。
下载
实操建议:
立即学习
“
Python免费学习笔记(深入)
”;
优先用
方法链代替
处理字符串;
数值计算尽量用
、
、布尔索引,而不是
;
真要写
,确保函数本身已做空值防御(否则遇到
报
),且返回类型稳定;
调试时加
快速验证逻辑,别一跑全量才报错。
保存前必须检查
的编码和空值表示
用
默认用
,但下游 Excel 打开中文是乱码——因为 Windows 默认认
;更麻烦的是,
默认写成空字段,Excel 会当成空字符串,再读回来就再也分不清是原始缺失还是人为清空。
实操建议:
立即学习
“
Python免费学习笔记(深入)
”;
导出给 Excel 用,加
或
(后者带 BOM,Excel 能认);
用
显式标出缺失,避免和空字符串混淆;
禁用索引导出:
,否则多一列没意义的数字;
如果字段含换行符或逗号,确认
(需先
)。
清洗 pipeline 最容易被忽略的,是“中间态不可逆”——比如
覆盖了原始缺失语义,后面再想还原就只能靠日志或备份。留一列
或用
对齐对比,比事后 debug 强十倍。
pandas.read_csv()NaNobjectfillna()astype()na_values['N/A', 'NULL', '']dtypeint64objectparse_datesdate_parser'2023/01/01''01-Jan-2023'low_memory=Falsedrop_duplicates()emaildrop_duplicates(subset=['email'])order_idamountstr.strip().str.lower()round()keep='first'keep=Falseis_duplicated = df.duplicated(keep=False)apply()lambda x: clean_phone(x) if pd.notna(x) else Nonestr.replace()str.extract()Series.strapply()np.where()clip()apply(lambda x: ...)apply()NaNTypeErrordf.sample(5).apply(...)to_csv()df.to_csv('out.csv')utf-8gbkNaNencoding='gbk'encoding='utf-8-sig'na_rep='NULL'index=Falsequoting=csv.QUOTE_ALLimport csvfillna(0)raw_xpd.concat([df, df_cleaned], axis=1)