导出Pandas DataFrame至CSV时如何保留单元格内换行格式?
解决pandas导出CSV时单元格内多行文本换行丢失问题
问题分析
你遇到的核心问题是CSV格式规则限制:只有当单元格内容被引号包裹时,其中的换行符才会被识别为单元格内的换行,而非新行的分隔符。虽然你已经启用了QUOTE_ALL,但可能因换行符格式不统一,或阅读器未正确解析引号内内容导致格式混乱。
解决方案
1. 统一单元格内的换行符格式
先确保DataFrame中多行文本的换行符为\n(如果原数据包含\r\n等其他换行格式,先统一替换):
# 针对Content列处理换行符,根据实际列名调整 df['Content'] = df['Content'].str.replace('\r\n', '\n')
2. 优化导出代码
保持QUOTE_ALL的同时,显式指定引号字符增强兼容性(默认即为双引号,可强化标准格式):
import pandas as pd df.to_csv( 'Findcomposer_updated.csv', index=False, quoting=pd.io.common.csv_quoting.QUOTE_ALL, encoding='utf-8', sep=',', quotechar='"', line_terminator='\n' )
关键说明
QUOTE_ALL强制所有单元格用双引号包裹,确保单元格内的\n被阅读器识别为内部换行,不会被当作新行分隔符。- 若用Excel打开导出的CSV文件,需手动设置单元格格式:选中目标列 → 右键「设置单元格格式」→ 勾选「自动换行」,才能看到单元格内的换行效果。
- 导出后的CSV原始内容会呈现如下正确结构:
"Genre","People","Content" "Fruit","Mark","The fruit is a peach. It is very delicious." "Animal","Kiki","The animal is a dog. It is very cute"
内容的提问来源于stack exchange,提问作者Megan
相关产品推荐
相关产品推荐

