2017-06-27 11 views
-5

多くのcsvファイルを列ごとに1つのcsvファイルにマージしたいのですが、各行で日付を一致させる必要があります。私を助けてください。おかげPythonは多くの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 
+7

のようなものは、SOコード書き込みサービスではありません。実装はどこにありますか?その問題は何ですか? – jonrsharpe

+0

どのように多くのcsvファイルをマージし、3.csvのような出力を得る。本当にありがとう。 – user7070824

+0

これはあなたの要件です。私たちはあなたのためにあなたの(家)仕事をするためにここにいません。 – jonrsharpe

答えて

0

を使用して列の名前を変更することができます。あなたがすべきことの概要を以下に示します。

  • pd.read_csvのファイルを読みます。たくさんのファイルがある場合は、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) 
0

はまだコメントすることはできません(評判が足りません)、重いファイルで作業している場合は、pandas.read_csvmergeまたはjoinメソッド。あなたの出力が別の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'})

+0

ありがとう、tgrandje。 – user7070824

関連する問題