Pandas导出与导入DataFrame行数不一致问题求助
CSV导出与读取数据不一致问题排查
问题描述
在A代码文件中导出CSV后,DataFrame内容为:
A col ----- 0 10 ----- 1 10 -----
但在B代码文件中读取该CSV时,得到的DataFrame数据不符:
B col ---- 0 10 ---- 1 5 ----
预期读取结果应为两行数据均为10:
B col ---- 0 10 ---- 1 10 ----
已确认A文件中的原始数据无误,但读取后出现数据不一致,使用的代码如下:
# A文件导出代码 dfA.to_csv("df.csv", index=False) # B文件读取代码 dfB = pd.read_csv("df.csv")
可能原因及解决方法
- 文件写入未完成就读取:
to_csv执行后,数据可能还在内存缓存中,未完全写入磁盘就被B文件读取。可以在A文件中确保写入完成后再执行B文件,或者强制刷新写入:dfA.to_csv("df.csv", index=False, mode='w', flush=True) - 工作目录不一致:A和B文件可能处于不同的工作目录,导致读取的不是同一个
df.csv。可以打印当前目录确认:
建议使用绝对路径进行读写:import os print(os.getcwd()) # 在A、B文件中分别执行,查看路径是否一致# A文件 file_path = os.path.abspath("df.csv") dfA.to_csv(file_path, index=False) # B文件 dfB = pd.read_csv(file_path) - 旧文件缓存/覆盖问题:可能存在同名的旧CSV文件,读取时加载了旧数据。可以删除旧的
df.csv后重新导出,或者导出时指定mode='w'强制覆盖旧文件。 - pandas版本或参数差异:不同版本的pandas对CSV读写的默认处理可能不同,比如分隔符、空值解析等。可以明确指定分隔符确保一致:
dfA.to_csv("df.csv", index=False, sep=',') dfB = pd.read_csv("df.csv", sep=',')
内容的提问来源于stack exchange,提问作者Irene Hsu
相关产品推荐
相关产品推荐

