2016-03-23 6 views
0

日付に基づいて一緒に参加する必要があるcsvファイルがありますが、各ファイルの日付は同じではありません(つまり、 1998年)。私は基本的なコード(下記参照)を持っていますが、ここからどこに行くのかはわかりません。任意のヒントが評価されます。以下に私が参加しようとしている別のcsvのサンプルを見つけてください。あなたは正しくCSVファイルを読んでいないPythonでPandasを使用して複数のファイルを日付に基づいて結合する

import os, pandas as pd, glob 
directory = r'C:\data\Monthly_Data' 
files = os.listdir(directory) 
print(files) 
all_data =pd.DataFrame() 
for f in glob.glob(directory): 
    df=pd.read_csv(f) 
    all_data=all_data.append(df,ignore_index=True) 
all_data.describe() 

ファイル1

DateTime F1_cfs F2_cfs F3_cfs F4_cfs F5_cfs F6_cfs F7_cfs 
3/31/1991 0.860702028 1.167239264 0 0 0 0 0 
4/30/1991 2.116930556 2.463493056 3.316688418    
5/31/1991 4.056572581 4.544307796 5.562668011    
6/30/1991 1.587513889 2.348215278 2.611659722    
7/31/1991 0.55328629 1.089637097 1.132043011    
8/31/1991 0.29702957 0.54186828 0.585073925    2.624375 
9/30/1991 0.237083333 0.323902778 0.362583333 0.925563094 1.157786606 2.68722973 2.104090278 

ファイル2

DateTime F1_mg-P_L F2_mg-P_L F3_mg-P_L F4_mg-P_L F5_mg-P_L F6_mg-P_L F7_mg-P_L 
6/1/1992 0.05 0.05 0.06 0.04 0.03 0.18 0.08 
7/1/1992 0.03 0.05 0.04 0.03 0.04 0.05 0.09 
8/1/1992 0.02 0.03 0.02 0.02 0.02 0.02 0.02 

ファイル3

DateTime F1_TSS_mgL F1_TVS_mgL F2_TSS_mgL F2_TVS_mgL F3_TSS_mgL F3_TVS_mgL F4_TSS_mgL F4_TVS_mgL F5_TSS_mgL F5_TVS_mgL F6_TSS_mgL F6_TVS_mgL F7_TSS_mgL F7_TVS_mgL 
4/30/1991 10 7.285714286 8.5 6.083333333 3.7 3.1        
5/31/1991 5.042553191 3.723404255 6.8 6.3 3.769230769 2.980769231        
6/30/1991   5 5 1 1        
7/31/1991              
8/31/1991              
9/30/1991 5.75 3.75 6.75 4.75 9.666666667 6.333333333 8.666666667 5 12 7.666666667 8 5.5 9 6.75 
10/31/1991 14.33333333 9 14 10.66666667 16.25 11 12.75 9.25 10.25 7.25 29.33333333 18.33333333 13.66666667 9 
11/30/1991 2.2 1.933333333 2 1.88 0 0 4.208333333 3.708333333 10.15151515 7.909090909 9.5 6.785714286 4.612903226 3.580645161 
+0

: 例外IOError:ファイルからの初期化は、あなたが(行を追加)、あなたはあなたの列名を正規化するために持っているか、ヘッダーをスキップするか縦にあなたのデータを追加したい場合は – Koda

+0

を失敗しました'read_csvの行(彼はader = None) '。データを水平方向に追加する場合は、 'append()'に 'axis = 1'を指定する必要があります。 – MaxU

+0

append()にaxis = 1を指定するとどうなりますか? – Koda

答えて

1

1)コードの後半で使用しないため、次の行をコメントアウトする必要があります。

files = os.listdir(directory) 
    print(files) 

2)glob.glob(directory)は一致ファイルを返しませんでした。 glob.glob()の引数としてパターンをとり、例えば:'C:\data\Monthly_Data\File*.csv'、残念ながらあなたがパターンとしてディレクトリを入れて、どのファイルが

for f in glob.glob(directory):

を発見されない私は、上記の2部とprint all_dataを修正しましたファイルの内容は私のコンソール上に表示される私は、次のエラーを取得しています

関連する問題