使用pd.read_csv读取500万行文件仅读取100万行的问题求助
解决pd.read_csv仅读取部分行的问题
排查方向与解决方案
确认源文件完整性
先验证文件实际行数是否达标:- Windows系统执行命令:
find /c /v "" filename.csv - Linux/macOS系统执行命令:
wc -l filename.csv
如果统计结果为100万行,说明文件本身不完整,需重新获取完整文件。
- Windows系统执行命令:
检查read_csv参数
排查是否误设置了nrows参数限制行数,比如代码中写了pd.read_csv('file.csv', nrows=1000000),删除该参数即可读取全部内容。处理特殊格式问题
若CSV单元格包含换行符等特殊字符,会导致pandas误判行边界:- 强制指定换行符:
pd.read_csv('file.csv', lineterminator='\n') - 切换为Python引擎(兼容性更强):
pd.read_csv('file.csv', engine='python')
- 强制指定换行符:
验证内存与分块读取
若机器内存不足,一次性读取可能中断。尝试分块读取确认是否能获取完整数据:chunk_iter = pd.read_csv('file.csv', chunksize=100000) total_rows = 0 for chunk in chunk_iter: total_rows += len(chunk) print(f"已读取{total_rows}行")分块成功的话,后续可基于分块逻辑处理数据。
指定文件编码
错误编码可能导致读取中断,尝试指定常用编码:pd.read_csv('file.csv', encoding='utf-8')或根据文件实际编码替换为
gbk、utf-16等。
内容的提问来源于stack exchange,提问作者Nanhe Zou
相关产品推荐
相关产品推荐

