Python中如何将多个DataFrame纵向合并为单个DataFrame?
Pandas多文件纵向合并问题修复
你的代码存在两处核心错误:
- 循环缩进错误:遍历文件的第二层循环写在了第一层循环外部,导致仅能读取最后一个子文件夹下的txt文件,其余子文件夹内容全部遗漏
- 拼接方向参数错误:
pd.concat中axis=1代表按列横向拼接,是你产生大量冗余列的直接原因,纵向按行拼接需要设置axis=0
修复后代码
import pandas as pd import glob path = "C:/Users/nb/Desktop/NetworkCharacteristic/" fi=glob.glob(path+"*") li=[] for file in fi: files = glob.glob(file + "/*.txt") # 调整缩进,将读取单个文件的逻辑放到子文件夹遍历循环内部 for filename in files: frame = pd.read_csv(filename, sep='#') li.append(frame) # axis设为0实现纵向拼接,加ignore_index=True可重置全局行索引,避免索引重复 df = pd.concat(li, axis=0, ignore_index=True)
效果说明
修改后代码会读取所有子文件夹下的txt文件,按行纵向合并为一个DataFrame,列数和单个txt文件的列数一致,行数为所有文件行数的总和。
内容的提问来源于stack exchange,提问作者Òmran
相关产品推荐
相关产品推荐

