使用python合并多个文件

时间:2019-07-17 16:16:08

标签: python pandas loops merge

我尝试使用循环组合多个csv文件,但结果与我预期的不同。

结果: M049_255.csv

                val_x       val_y
date                          
2019-04-01      2.8751      2.8751
2019-03-29      2.8634      2.8634
2019-03-28      2.8525      2.8525
2019-03-27      2.8610      2.8610

M045_285.csv

                 val_x      val_y
date                          
2019-04-01      3.7428      3.7428
2019-03-29      3.7205      3.7205
2019-03-28      3.7125      3.7125

M056_185.csv

                val_x       val_y
date                          
2019-04-01      2.1511      2.1511
2019-03-29      2.1439      2.1439
2019-03-28      2.1416      2.1416  

它们与自己合并,但我希望所有这些都可以合并在一起。我真的不知道如何合并许多文件,因此任何人都可以帮助我,因为我认为循环遇到麻烦。

我期望的结果是

                val_x       val_y     val_z
date                          
2019-04-01      2.8751      3.7428    2.1511
2019-03-29      2.8634      3.7205    2.1439
2019-03-28      2.8525      3.7125    2.1416
2019-03-27      2.8610      null      null

我已经尝试过的一些代码。

file_path = '/Users/Desktop/Pro/*.csv'
for filename in glob(file_path):

    df = pd.read_csv(filename, header=0, sep=',', parse_dates= ["date"], encoding='utf-8',usecols= ['date', 'val'])
    df_ff = pd.merge(df, df, how='left', left_on=['date'], right_on = ['date'])
    print(df)

我为这个问题苦苦挣扎了很多天。谁能帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

我认为您最好不使用没有索引的df1,df2和df3。然后,您可以执行以下操作:

df4 = pd.concat([df2, df2, df3])

哪个打开了pivotpivot_table和其他agg函数的门,即可为您提供所需的信息。