如何使用pandas读取含多组单列数据的文件并生成多列DataFrame
你可以配合简单的正则预处理,只用几行代码就能实现批量读取,不用写复杂的逐行解析逻辑,性能也足够处理大量文件:
实现代码
import pandas as pd import re def read_custom_format(file_path): # 一次性读取文件全部内容 with open(file_path, encoding='utf-8') as f: raw_content = f.read() # 匹配所有括号包裹的数据块,第一个分组是列名,第二个分组是值内容 data_blocks = re.findall(r'\((\w+)\s+([\s\S]+?)\)', raw_content) df_dict = {} for col_name, val_text in data_blocks: # 拆分每行值,过滤空行后转成对应类型(这里示例是整数,可按需修改) val_list = [int(v.strip()) for v in val_text.splitlines() if v.strip()] df_dict[col_name] = val_list return pd.DataFrame(df_dict)
调用方法
直接传入文件路径即可,返回的就是你需要的DataFrame格式:
df = read_custom_format("你的文件路径.txt")
如果你的数据值不是整数,只要修改int(v.strip())处的类型转换逻辑即可,比如要保留字符串就去掉int(),要浮点数就换成float()。批量处理同类文件时,只要遍历所有文件路径循环调用这个函数就行,完全可以对接你现有的自动化后处理流程。
内容的提问来源于stack exchange,提问作者coyote
相关产品推荐
相关产品推荐

