将PDF提取的TXT文件批量导入Pandas单列DataFrame的方法
批量把TXT文件导入Pandas单列DataFrame的最优方案
问题根源
你用pd.read_csv出问题,是因为解析器会把文本里的逗号、括号这类字符误判成列分隔符,直接把一篇文章拆成了好几列。解决思路很简单:直接读取每个文件的完整内容作为单个字符串,完全绕开CSV的解析逻辑。
批量处理代码(适配数千个文件)
1. 先装必要的库(如果没装的话)
pip install pandas tqdm
2. 核心代码
import pandas as pd import os from tqdm import tqdm def batch_load_txt(folder_path): all_texts = [] # 把文件夹里所有TXT文件筛选出来 txt_files = [file for file in os.listdir(folder_path) if file.lower().endswith('.txt')] # 逐个读取文件,tqdm用来显示进度条,处理几千个文件时能直观看到进度 for file in tqdm(txt_files): full_path = os.path.join(folder_path, file) # 读取完整文件内容,strip()仅去除首尾空白,保留文本内部的换行、格式 with open(full_path, 'r', encoding='utf-8', errors='ignore') as f: text = f.read().strip() all_texts.append(text) # 转换为单列DataFrame,列名可按需修改 df = pd.DataFrame(all_texts, columns=['文章全文']) return df # 替换为你的TXT文件所在文件夹路径 my_folder = './你的TXT文件目录' final_df = batch_load_txt(my_folder) # 验证结果 print(f"最终DataFrame形状: {final_df.shape}") print(final_df.head())
方案优势
- 彻底解决列拆分问题:直接读取全文,完全规避CSV解析器的分隔符误判逻辑
- 高效适配大数量文件:用
os.listdir快速定位文件,配合tqdm进度条,处理数千个文件也清晰可控 - 强容错性:
errors='ignore'可跳过编码异常的文件,不会因单个坏文件中断整个批量任务 - 保留原始文本格式:文件内的换行、空格、特殊符号均能完整保留,和PDF提取的原始内容一致
拿你提供的Text1和Text2测试,最终会得到形状为(2,1)的DataFrame,每一行对应一篇完整文章,完全符合需求。
内容的提问来源于stack exchange,提问作者stackword_0
相关产品推荐
相关产品推荐

