2017-02-24 2 views
0

팬더를 사용하여 연결을로드하려고하는 여러 CSV 파일이 있습니다. 비슷한 질문이 있지만 답변이 저에게 효과가있는 것 같지 않습니다. 기본적으로 코드는 CSV 파일을로드하고 연결하지만 DF의 구조가 이상합니다 (예 : 열의 수가 예기치 않게 늘어남). 비트 오브 백그라운드 : 저는 Matlab에서 새로운 변환을했습니다. 실제로이 코드를 Matlab에서 작동 시켰고 파이썬에서 실행되도록하고 싶습니다.여러 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로 파일을 다음과 같이 구성되어 있습니다 :

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 

출력은 다음과 같습니다

,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의 첫 번째 행에있는 많은 다른 도시가 그래서 더 많은 컬럼 DataFrame에 삽입되어 있다는 것입니다 이는 각각의 파일에 대한 데이터에 너무 적은 열이 있고 모든 것이 지저분 해지다는 것을 의미합니다.

+0

감사합니다. Sebastian! 그것은 그것을 고쳤다. 나는 이것에 몇 시간을 보냈다 - 당혹 스러웠다. – jtam