为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

收到一只叮咚 2022-06-14 15:15:10
如何在一个csv文件中合并所有打开文件夹的多个df python我有大约 700 个 csv 文件都有完全相同的列,我需要将所有文件合并到一个 csv 文件中。那就是数据,它都在一个文件夹中,文件名中有一个模式,就像“日期” = ex: 07 25 201807252018 = {name: "Carlos", age:"30", height: "15" }name     age   heightCarlos   30    1507262018 = {name: "Carlos", age:"30", height: "15" }name     age   heightCarlos   30    15and etc.. range of 700csv我做了什么。。它可以工作,但非常手动,需要大量输入,因为有 700 个 csv03012018 = 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")预期输出将是一种最佳方式,无需大量输入即可快速完成。
查看完整描述

1 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

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”中,并且在该文件夹中,您的文件夹“Tables”中包含所有 csv,您可以:


os.listdir('Tables/')


查看完整回答
反对 回复 2022-06-14
  • 1 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信