2016-08-24 108 views
-1

我有這樣的代碼追加幾個熊貓dataframes不工作

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文件,但現在它只是不工作。

我面對的問題是,只有一個文件的內容使其通過名稱x到數據框。

我知道我處理所有文件,我期望x數據框總共包含10000行左右,但我只能得到一個文件aproximatley 2000行的內容。

我的文件通常是這樣的:

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

即使沒有您的csv文件的樣本,也不可能診斷出問題所在。另外,追加並不是導入多個文件的可行方式---請參閱[本答案](http://stackoverflow.com/a/38943704/509824)以獲得更好的方法。 –

+0

我添加了示例文件。我試過你的例子,但AttributeError:'模塊'對象沒有屬性'加入' –

+0

我其實試過了你的建議的修改版本,但我得到了與我的代碼相同的結果。我只得到我的最終數據框中的一個文件,我無法弄清楚爲什麼 –

回答

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

axis = 1似乎連接了所有的橫向的CSV文件,每個文件都添加新的列。我想連接垂直這就是爲什麼我將軸更改爲0 –

+0

您是否試圖用第一個文件初始化x而不是空白DataFrame? – magnoliafork