Pandas合并多个csv文件

2024-10-01 13:38:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有多个csv文件,我想合并成一个df。在

它们都是这种通用格式,有两个索引列:

                                           1     2
CU0112-005287-7 Output Energy, (Wh/h)   0.064   0.066
CU0112-005287-7 Lights (Wh)                0     0

                                            1     2
CU0112-001885-L Output Energy, (Wh/h)   1.33    1.317
CU0112-001885-L Lights (Wh)             1.33    1.317

等等。。。在

组合df为:

^{pr2}$

我正在尝试以下代码:

import os
import pandas as pd
import glob

files = glob.glob(r'2017-12-05\Aggregated\*.csv')   //folder which contains all the csv files

df = pd.merge([pd.read_csv(f, index_col=[0,1])for f in files], how='outer')

df.to_csv(r'\merged.csv')

但我得到了一个错误:

TypeError: merge() takes at least 2 arguments (2 given)

Tags: 文件csvimportdfoutput格式filesmerge
3条回答

我想你需要^{}而不是{}:

df = pd.concat([pd.read_csv(f, index_col=[0,1]) for f in files])

你可以试试下面的方法。我对数据帧组合逻辑做了一些更改

import os
import pandas as pd
import glob

files = glob.glob(r'2017-12-05\Aggregated\*.csv')   //folder which contains all the csv files

df = reduce(lambda df1,df2: pd.merge(df1,df2,on='id',how='outer'),[pd.read_csv(f, index_col=[0,1])for f in files] )

df.to_csv(r'\merged.csv')

一个简单的方法:

创建包含CSV名称的列表:

files=listdir()
csvs=list()
for file in files:
    if file.endswith(".csv"):
        csvs.append(file)

连接CSV:

^{pr2}$

相关问题 更多 >