首页 > 解决方案 > 如何从 python 中的多个数据帧创建单个数据帧?

问题描述

我想从多个文件制作一个数据框,但它不能按我想要的方式工作。我想垂直合并,但他们正在水平合并创建新列。我不想要那个我怎么能解决这个问题?这是我的代码:

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)
df = pd.concat(li, axis=1)

我从文件夹内的许多文件夹中读取文件。我得到了这个结果:“5行×4440列”

标签: pythonpandasdataframeglob

解决方案


您可以替换这行代码:

df = pd.concat(li, axis=1)

经过 :

df = pd.concat(li, axis=0, ignore_index=True)

但是,如果您想要一种最严格的方式来做到这一点,我建议:

import glob
import pandas as pd

files = glob.glob("C:/Users/nb/Desktop/NetworkCharacteristic/*/*.txt")
dfs = [pd.read_csv(f, header=None, sep="#") for f in files]

df = pd.concat(dfs, ignore_index=True)

推荐阅读