2017-02-24 69 views
0

我有幾個csv文件,我嘗試使用熊貓加載連接。有類似的問題,但答案似乎不適合我。基本上,代碼加載csv文件並連接,但DF的結構很奇怪(列數意外增長)。背景位置:我是一個來自Matlab的新的轉換,我實際上有這個代碼在Matlab中工作,我只是想讓它在Python中運行。下面是代碼:導入幾個csv文件並使用熊貓在Python中連接

import pandas as pd 
import glob 

filelist = glob.glob('/.../*.csv') 
DF = pd.DataFrame() 
list_ = [] 
    for i in filelist: 
     tmp = pd.read_csv(i, header=1, skiprows=0, index_col=None) 
     list_.append(tmp) 
     DF = pd.concat(list_) 
DF.to_csv('/.../All.csv') 

的CSV文件的結構是這樣的:

​​

輸出看起來是這樣的:

,11/14/16,11/7/16,17,29,32,X,71901,9/1/16,99771,AK,AL,AR,X,X,X,X,Nome Census Area,X,negative,negative.1,negative.2,positive,positive.1 
0,,,,1.0,,X,,9/1/16,,,AL,,X,X,,,,,negative,,,negative,negative 
1,,,,10.0,,X,,9/1/16,,,AL,,X,X,,,,,negative,,,negative,negative 
2,,,,11.0,,X,,9/1/16,,,AL,,X,X,,,,,negative,,,negative,negative 
+0

你能修理你的縮進嗎?因爲這應該引起一個語法問題,因爲'for'行*意外縮進*? – Parfait

回答

1

問題是header=1告訴大熊貓第二行應該被視爲標題而不是第一個。

from io import StringIO 
import pandas as pd 
data="""TestDate,City,State,ZipCode,County,Num,A,B,C 
9/1/16,X,AL,X,X,29,negative,positive,positive 
9/1/16,X,AL,X,X,1,negative,negative,negative 
9/1/16,X,AL,X,X,10,negative,negative,negative""" 
df=pd.read_csv(StringIO(data)) 
print(df) 
TestDate City State ZipCode County Num   A   B   C 
0 9/1/16 X AL  X  X 29 negative positive positive 
1 9/1/16 X AL  X  X 1 negative negative negative 
2 9/1/16 X AL  X  X 10 negative negative negative 
df=pd.read_csv(StringIO(data),header=1,skiprows=0) 
print(df) 
9/1/16 X AL X.1 X.2 29 negative positive positive.1 
0 9/1/16 X AL X X 1 negative negative negative 
1 9/1/16 X AL X X 10 negative negative negative 

的問題是,你必須在相應的dataframes第一行中許多不同的城市,所以越來越多列被插入到數據幀,這意味着每個文件的數據列都太少,而且一切都變得非常混亂。

+0

謝謝塞巴斯蒂安!這解決了它。我花了幾個小時 - 很尷尬。 – jtam

相關問題