如何最优地将Pandas DataFrame按列值对格式写入TXT文件?
实现方法
方法1:逐行处理(直观易读)
通过apply逐行生成目标格式的字符串,再写入文件:
import pandas as pd # 替换为你实际加载后的DataFrame df = pd.DataFrame({ 'c1': [12, 44, 'DF'], 'c2': [22, 78, 'WE'], 'c3': [66, 'AB', 13] }) # 生成每行的目标格式字符串 formatted_lines = df.apply( lambda row: ','.join([f'{col}="{val}"' for col, val in row.items()]), axis=1 ) # 写入TXT文件 formatted_lines.to_csv('result.txt', index=False, header=False)
方法2:向量化处理(性能更优,适合大数据集)
如果数据量较大,用向量化操作替代逐行循环,能显著提升效率:
import pandas as pd df = pd.DataFrame({ 'c1': [12, 44, 'DF'], 'c2': [22, 78, 'WE'], 'c3': [66, 'AB', 13] }) # 为每个列生成"列名=值"格式的序列 formatted_columns = [f'{col}="{df[col]}"' for col in df.columns] # 拼接列并生成每行的最终字符串 formatted_lines = pd.concat(formatted_columns, axis=1).apply(','.join, axis=1) # 写入文件 formatted_lines.to_csv('result.txt', index=False, header=False)
补充说明
- 两种方法都会自动将数值类型(如示例中的整数12、22)转换为字符串,无需额外类型处理
to_csv写入时设置index=False和header=False,确保输出文件只有目标内容,无多余的索引和表头
内容的提问来源于stack exchange,提问作者Suraj Pandey
相关产品推荐
相关产品推荐

