Python中如何将多标签pandas DataFrame保存为指定格式txt文件?
多标签Pandas DataFrame按指定格式导出TXT实现方案
处理思路
核心只需要两步:
- 把Label列中逗号分隔的标签统一替换为空格分隔
- 按照「文本 +
__label__分隔标识 + 空格分隔的标签」格式拼接每行内容,按行写入txt即可
实现代码
基础写法(易理解,适合小数据集)
import pandas as pd # 构造示例DataFrame,实际使用时替换为你自己的数据集即可 df = pd.DataFrame({ 'Text': ['I love you', 'Thank you', 'You are welcome'], 'Label': ['A, B', 'C, D', 'A, B, C'] }) output_lines = [] for _, row in df.iterrows(): # 替换标签中的逗号分隔符为空格 labels = row['Label'].replace(', ', ' ') # 按要求格式拼接单行内容 output_lines.append(f"{row['Text']} __label__ {labels}") # 写入文件,指定utf-8编码避免中文乱码 with open('output.txt', 'w', encoding='utf-8') as f: f.write('\n'.join(output_lines))
高效写法(向量化操作,适合大数据集)
如果数据集行数较多,用iterrows循环效率较低,可以直接用pandas内置的字符串向量化操作处理,速度提升明显:
# 批量生成每行输出内容 df['line_content'] = df['Text'] + ' __label__ ' + df['Label'].str.replace(', ', ' ') # 直接导出为txt,关闭索引和表头 df['line_content'].to_csv('output.txt', index=False, header=False, encoding='utf-8')
导出效果
运行代码后生成的txt文件内容完全符合要求:
I love you __label__ A B Thank you __label__ C D You are welcome __label__ A B C
内容的提问来源于stack exchange,提问作者Jaya A
相关产品推荐
相关产品推荐

