使用Pandas写入TXT时,如何在Sentence #列值变化处添加空行?
解决方案
你的问题出在三个核心点:
- 转义字符写错:应该用
\n而非/n - 用
append添加的是字符串值,不是真正的换行符,to_csv会把它当成一行内容写入 - 循环追加写入的方式容易导致换行逻辑混乱
下面是两种可行的解决方法:
方法一:分组拼接字符串(简洁高效)
先按Sentence #分组,把每组的join值用换行连接,再用两个换行分隔不同句子组,最后一次性写入文件:
import pandas as pd # 假设df已定义 # 生成完整内容:每组内换行,组间空行 content = '\n\n'.join(['\n'.join(group) for _, group in df.groupby('Sentence #')['join']]) # 写入文件 with open('file.txt', 'w', encoding='utf-8') as f: f.write(content)
方法二:逐行遍历(直观可控)
逐行遍历数据,跟踪前一句的编号,当编号变化时插入空行:
prev_sentence = None with open('file.txt', 'w', encoding='utf-8') as f: for _, row in df.iterrows(): # 不是第一行且句子编号变化时,先写空行 if prev_sentence is not None and row['Sentence #'] != prev_sentence: f.write('\n') # 写入当前join内容 f.write(f"{row['join']}\n") prev_sentence = row['Sentence #']
两种方法都能生成你需要的格式:每个句子的内容占多行,句子之间用空行分隔。
内容的提问来源于stack exchange,提问作者Strayhorn
相关产品推荐
相关产品推荐

