如何从多个文本文件提取指定列创建pandas DataFrame
实现方案
你现有的遍历逻辑基础上调整列提取和合并逻辑即可,完整实现代码如下:
import os import glob import pandas as pd # 替换为你的文本文件所在文件夹路径 path = "your_folder_path" all_files = glob.glob(os.path.join(path, "*.txt")) # 存储每一个文件的第二列数据 col_list = [] for file in all_files: # 获取不含路径的文件名作为最终列名 file_name = os.path.basename(file) # 读取文件,固定提取第二列数据,设置列名对应文件名 # 如果你的实际文件是逗号/制表符分隔的普通csv,删除sep参数即可 tmp_col = pd.read_csv(file, sep='\s*\|\s*', engine='python').iloc[:, 1] tmp_col.name = file_name col_list.append(tmp_col) # 按列拼接所有数据得到最终DataFrame df_final = pd.concat(col_list, axis=1)
关键调整说明:
- 读取文件时的
sep='\s*\|\s*'参数适配示例中带竖线的分隔格式,可根据你实际的文件分隔符调整 - 用
iloc[:,1]固定取第二列数据,不受列名变化影响 - 拼接时自动对齐行号,若不同文件行数不一致,空缺位置会自动填充NaN
内容的提问来源于stack exchange,提问作者Anne
相关产品推荐
相关产品推荐

