将多个文件合并为一个数据帧

时间:2017-10-11 16:45:09

标签: python pandas dataframe

我已经编写了一个代码来读取多个文件,格式化数据并将它们合并到一个数据帧中:

import os.path
import glob

def get_merged_file(flist, **kwargs):
    fdf=pd.DataFrame()
    for f in flist:
        df=pd.read_excel(f, **kwargs)
        df=df.iloc[4:-1]
        df.columns=df.iloc[0]
        df=df.iloc[1:].reset_index(drop=True)
        df = df.iloc[:, :-4]
        fdf.append(df)
    return fdf

path='S:/random path'

fls = os.path.join(path, 'Report*.xls')

dff = get_merged_file(glob.glob(fls))
print(dff)

但这是回归

清空DataFrame

列:[]

索引:[]

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我认为让函数返回已解析的数据框并使用pd.concat完全放置它们会更好。

import os.path
import glob

def get_file(fp, **kwargs):
    df = pd.read_excel(f, **kwargs)
    df = df.iloc[4:-1]
    df.columns = df.iloc[0]
    df = df.iloc[1:].reset_index(drop=True)
    df = df.iloc[:, :-4]
    return df

path='S:/random path'

fls = os.path.join(path, 'Report*.xls')

dff = pd.concat([get_file(f) for f in glob.glob(fls)])
print(dff)