如何在Pandas中合并元素数量少于上一行的跨行内容
处理Pandas导入含多行缩进文本的问题
针对最后一列内容缩进换行的文本文件,直接用read_csv会把续行识别为独立行,可通过预处理文本解决:
- 步骤1:手动读取并合并续行
先读取所有行,判断行首是否有缩进(空格或制表符),将这类续行合并到上一行的末尾,确保每条记录占一行:
import pandas as pd # 读取目标文本文件 with open('target_file.txt', 'r', encoding='utf-8') as f: raw_lines = f.readlines() processed_rows = [] current_row = '' for line in raw_lines: clean_line = line.strip() if not clean_line: continue # 根据实际缩进特征判断是否为续行(此处以4个空格或制表符为例) if line.startswith(' ') or line.startswith('\t'): current_row += ' ' + clean_line else: if current_row: processed_rows.append(current_row) current_row = clean_line # 加入最后一条记录 if current_row: processed_rows.append(current_row)
- 步骤2:转为DataFrame并保存为CSV
处理后的每行是完整记录,用制表符拆分列后生成DataFrame,再导出为CSV:
# 按制表符拆分列,生成DataFrame df = pd.DataFrame([row.split('\t') for row in processed_rows]) # 可根据需求设置列名 # df.columns = ['ID', '名称', '详细描述'] # 导出为CSV文件 df.to_csv('result.csv', index=False, sep='\t')
说明
这种方法先修复了原始文本的换行问题,确保每条记录的列数一致,避免read_csv因列数不匹配报错,同时保留所有原始内容。
内容的提问来源于stack exchange,提问作者BuildCodeCry
相关产品推荐
相关产品推荐

