将字符串列表读取到pandas DataFrame时出现EmptyDataError错误
解决读取多表格文本文件时的EmptyDataError错误
问题原因
使用split('\n\n')分割文本时,会生成包含空字符串的块——比如文件开头/结尾的空行、连续多个空行,都会被分割成空块。当pd.read_csv处理空字符串时,因没有可解析的列,就会触发EmptyDataError。
解决方案
在处理每个块之前,先过滤掉空的或仅含空白字符的块,有两种实现方式:
方式1:分割时直接过滤
with open(txt_full_paths[0], 'r') as file: # 分割后过滤掉空块(含仅空白字符的块) chunks = [chunk for chunk in file.read().split('\n\n') if chunk.strip()]
方式2:循环内判断处理
dfs = [] for chunk in chunks: cleaned_chunk = chunk.strip() # 仅处理非空的有效块 if cleaned_chunk: df = pd.read_csv(StringIO(cleaned_chunk), sep='\t').transpose() dfs.append(df)
验证方法
如果想确认问题根源,可以打印所有块的内容,查看是否存在空块:
print([repr(chunk) for chunk in chunks])
内容的提问来源于stack exchange,提问作者Jonathan Lefebre
相关产品推荐
相关产品推荐

