如何用Python从多份CSV文件提取指定列并拼接生成新表
解决方案
你有MATLAB使用经验的话,pandas的DataFrame用法和MATLAB的表结构逻辑非常接近,上手很快,以下是可直接运行的修改后代码:
第一步:安装依赖(如果还没装pandas)
运行终端命令:pip install pandas
第二步:完整实现代码
import os import pandas as pd # 按你的实际路径修改即可 pathName = "D:/GLaDOS-CAMPUS/data/TestData-AB/" # 筛选目录下所有csv文件 csv_files = [f for f in os.listdir(pathName) if f.endswith('.csv')] # 创建空DataFrame用来存最终结果 result_df = pd.DataFrame() for file in csv_files: # 拼接完整文件路径 full_path = os.path.join(pathName, file) # 读取csv文件,usecols参数指定只读取第13列(对应第14列),避免加载全表浪费内存 df = pd.read_csv(full_path, usecols=[13]) # 把读取到的列重命名为对应csv文件名,不需要.csv后缀的话可以写file.replace('.csv','') df.columns = [file] # 将当前列拼接到结果表中 result_df = pd.concat([result_df, df], axis=1) # 打印结果确认 print(result_df) # 如果需要保存为新的csv,取消注释下面这行,修改保存路径即可 # result_df.to_csv("D:/merged_result.csv", index=False)
代码说明
- 逻辑和你原来的遍历逻辑完全一致,只是把打印的内容直接存到了DataFrame结构里
- 如果不同csv文件的行数不一致,pandas会自动给短的列末尾补空值
NaN,逻辑和MATLAB表的拼接逻辑一致 - 最终得到的
result_df就是你需要的新表,你可以像操作MATLAB表一样对它做后续的计算、筛选操作
内容的提问来源于stack exchange,提问作者Fairbz_
相关产品推荐
相关产品推荐

