PyCharm中使用pandas的to_csv()导出CSV无分隔符如何解决?
问题根因
代码的核心错误出在差异结果的构造环节:
f2021[~f2021.FileName.isin(f2016.FileName)]本身已经是筛选完成的DataFrame对象,不需要塞进列表后调用pd.DataFrame()二次转换- 用
pd.DataFrame([DataFrame对象])生成的新df,每个单元格存储的是原df的整体对象而非原始表数据,导出时自然不会生成正确的逗号分隔格式
修复后的代码
# 手动设置大表显示选项 pd.set_option('display.max_rows', None) pd.set_option('display.max_columns', None) pd.set_option('display.width', None) pd.set_option('display.max_colwidth', -1) # 读取两个年份的CSV为DataFrame f2016 = pd.read_csv('G:\\Wildlife_V_ErikSimoneNico_Done.csv') f2021 = pd.read_csv('G:\\test_v_wildlife_output.csv') # 直接筛选2021年有、2016年没有的FileName对应行,无需套列表 diff_df = f2021[~f2021.FileName.isin(f2016.FileName)] # 导出结果CSV diff_df.to_csv('G:\\v_wildlife_diff.csv', sep=',', index=False, header=True)
验证方式
导出完成后可直接打开v_wildlife_diff.csv确认:
- 第一行是表头字段,字段之间用逗号分隔
- 每行数据的各字段也用逗号分隔,符合CSV标准格式
内容的提问来源于stack exchange,提问作者jenn.murdock
相关产品推荐
相关产品推荐

