python按列合并许多csv文件

时间:2017-06-27 19:55:06

标签: python csv

我想通过列将许多csv文件合并到一个csv文件中,并且每行应该匹配日期。请帮我。感谢

示例1.csv文件:

CG_Month    CG Number
2014-09 1
2014-08 3
2014-07 24

示例2.csv文件

Month   Number    
2014-11  51
2014-08  4
2014-07  75

输出3.csf文件就像:

Month   Number  Month_2 Number_2        
2014-11 51      
               2014-09      1
2014-08 4      2014-08      3
2014-07 75     2014-07     24

2 个答案:

答案 0 :(得分:0)

无法发表评论(信誉不足),但如果您正在处理繁重的文件,则可以使用pandas.read_csvmergejoin方法。如果您的输出是另一个csv文件,则可以使用to_csv方法。

它应该是这样的:

import pandas as pd
df1 = pd.read_csv(url1, sep =  '\t', date_format).set_index('CG_Month')
df2 = pd.read_csv(url2, sep =  '\t', date_format).set_index('Month')
df3 = df1.join(df2).to_csv(url3)

您还可以使用重命名列     df.rename(columns = {'old_name':'new_name'})

答案 1 :(得分:0)

使用熊猫很容易实现。以下是您应该做的大致概述。

  • 使用map读入文件。如果您有大量文件,可以使用*your_list将它们全部读入生成器。将生成器设置为一个列表,以便将pd.merge传递到下一部分。

  • 使用import pandas as pd import os files = [j for j in os.listdir() if j.endswith('.csv')] frames = map(pd.read_csv,files) df = pd.merge(*frames, on = common_column_name_here) 将它们全部合并到公共列上。为了做到这一点,所有文件必须具有相同的列名。

这样的东西
{{1}}