如何在 python 中打开包含多个数据框的文件夹并合并到一个 csv 文件中

how open folder with multiple dataframes in python and merge into one csv file

如何打开文件夹多个 df python 合并所有在一个 csv 文件中

我有大约 700 个 csv 文件都具有完全相同的列,我需要将它们全部合并到一个 csv 文件中。

那是数据,都在一个文件夹里,文件名有一个模式,就像"date" = ex: 07 25 2018

07252018 = {name: "Carlos", age:"30", height: "15" }

name     age   height
Carlos   30    15



07262018 = {name: "Carlos", age:"30", height: "15" }

name     age   height
Carlos   30    15



and etc.. range of 700csv

我做了什么..


03012018 = pd.read_csv("Data/03012018 )
03022018 = pd.read_csv("Data/03012018 )
03032018 = pd.read_csv("Data/03012018 )
03042018 = pd.read_csv("Data/03012018 )
03052018 = pd.read_csv("Data/03012018 )
and etc..



file = pd.cancat([03012018,03022018,03032018,03042018,03052018 ])

file.to_csv("Data/file")


预期输出将是一种最佳方式,无需大量输入即可快速完成。

IIUC,应该这样做:

选项 1:

效率较低,可读性更高:

def get_df():
    df=pd.DataFrame()
    for file in os.listdir():
        if file.endswith('.csv'):
            aux=pd.read_csv(file)
            df=df.append(aux)
    return df

然后:

df=get_df()

选项 2:

内存效率更高,可读性更差:

def df_generator():

    for file in os.listdir():
        if file.endswith('.csv'):
            aux=pd.read_csv(file)
            yield aux

然后:

generator=df_generator()
df = pd.DataFrame()
for table in generator:
    df = df.append(table)

注意:要使其按原样工作,脚本必须位于包含 csv 的文件夹内。否则,您需要从您的脚本所在的文件夹添加到该文件夹​​的相对路径。

示例:如果您的脚本位于文件夹 "Project" 中,并且在该文件夹中,您拥有包含所有 csv 的文件夹 "Tables",您可以:

os.listdir('Tables/')