2016-08-24 4 views
-1

を働いていない私は、このコード追加は、いくつかのパンダのデータフレームが

import os 
import pandas as pd 
path = r'c:\Temp\factory' 
os.chdir(path) 
files = os.listdir() 
files_csv = [f for f in files if f[-3:] == 'csv'] 

x = pd.DataFrame() 

for f in files_csv: 
    data = pd.read_csv(f, sep=';', encoding='latin-1') 
    x = x.append(data, ignore_index=True) 

を持っている私は、CSVファイルを結合する前に、同じコードを使用していたが、今、それだけでは動作しません。

私が直面する問題は、1つのファイルの内容だけが名前xによってデータフレームにそれを作ることです。

私はすべてのファイルを処理することを知っています。私はxデータフレームが合計約10000行を含むことを期待していますが、私は1ファイルaproximatley 2000行の内容を取得します。

私のファイルは通常、次のようになります。

Computer;Managed by;Given Name 
cp1;user1;olle 
cp2;user2;niklas  
cp3;user3;kalle 
+0

あなたのcsvファイルのサンプルがなくても、問題の原因を診断することは不可能です。また、appendingは複数のファイルをインポートするための賢明な方法ではありません---より良いアプローチのために[この回答](http://stackoverflow.com/a/38943704/509824)を参照してください。 –

+0

サンプルファイルを追加しました。私はあなたの例を試みましたが、AttributeError: 'module'オブジェクトに属性 'join'がありません –

+0

私は実際にあなたの提案の修正版を試しましたが、私のコードと同じ結果を得ています。私は最終的なデータフレーム内のファイルのうちの1つしか取得できません。理由はわかりません –

答えて

0

私が前に似た何かをするために必要なてきました。私の解決策は:

x = pd.DataFrame() 

for f in files_csv: 
    data = pd.read_csv(f, sep=';', encoding='latin-1') 
    x = pd.concat([x, data], ignore_index=True, axis=1) 
+0

あなたのコードを使って軸= 0に設定した場合、私のコードと同じ結果になります –

+0

軸= 1は、各ファイルは新しい列を追加します。私は垂直を連結したいので、私は軸を0に変更しました –

+0

空のDataFrameの代わりに最初のファイルでxを初期化してみましたか? – magnoliafork

関連する問題