pandas.DataFrame.to_csv未导出全部行问题求助
解决pandas.DataFrame.to_csv导出数据缺失的问题
嘿,这个问题我之前也碰到过类似的,结合你的场景(Python 3.6.5 + pandas 0.22.0,连续大块数据缺失),给你几个实用的排查方向和解决办法:
先确认数据是否真的缺失(而非编辑器显示问题)
有时候数据里的隐藏换行符(比如\n、\r)会让普通文本编辑器误判行数,但实际数据是完整的。你可以用两种方式验证:- 用命令行统计真实行数:Linux/macOS用
wc -l filename.csv,Windows用find /c /v "" filename.csv - 用pandas重新读取文件检查:
df_verify = pd.read_csv('filename.csv') print(len(df_verify))
如果读取后的行数和原DataFrame一致,那就是编辑器的显示问题,不用慌。
- 用命令行统计真实行数:Linux/macOS用
显式管理文件流,避免缓存未刷新
旧版本pandas的to_csv有时候会因为缓存未及时刷入磁盘导致数据截断。你可以用with语句手动管理文件对象,确保写入完成后正确关闭:with open('filename.csv', 'w', newline='', encoding='utf-8') as f: df.to_csv(f, index=False) # index=False可避免导出额外的索引列升级pandas版本修复旧bug
你用的pandas 0.22.0是2018年的旧版本,存在不少IO相关的已知bug,包括大文件写入截断的问题。建议升级到稳定的新版本:pip install --upgrade pandas升级后再尝试导出,大概率能解决问题。
检查磁盘剩余空间
虽然概率不高,但如果保存文件的磁盘空间不足,写入到一半就会停止,导致数据截断。可以右键磁盘查看剩余空间确认。
内容的提问来源于stack exchange,提问作者culicidae




