2017-12-19 1 views
-2

팬더를 사용하여 파이썬으로 CSV 파일을 가져 오는 중 데이터 프레임이 하나의 열에 만 있습니다. The Player Standing Field table at this link (second one)의 쉼표로 구분 된 형식의 데이터를 Excel 파일에 복사하여 붙여 넣은 다음 CSV (원래는 ms-dos로 저장 한 다음 AllthingsGo42의 추천에 따라 utf-8로 저장)로 저장했습니다. 그러나 단일 열 데이터 프레임 만 반환했습니다. 내가 뭘하려의Python : 가져온 csv가 적절한 열로 분할되지 않았습니다.

예 :

dataset=pd.read('MLB2016PlayerStats2.csv') 

dataset=pd.read('MLB2016PlayerStats2.csv', delimiter=',') 

dataset=pd.read_csv('MLB2016PlayerStats2.csv',encoding='ISO-8859-9', 
delimiter=',') 

모든 반환 위의 코드의 각 라인 :

Rk를, 이름, 나이, Tm은, LG 전자, G, GS, CG, 인, 채널, PO, A, E, DP, Fld %, Rtot, Rtot/yr, Rdrs, Rdrs/yr, RF/9, RF/G, Pos 요약 1, Fernando Abad \ abadfe01,30, TOT, AL, 57,0 , 0,46.2 ...
2, Jose Abreu \ abreujo02,29, CHW, AL, 152,152,150,1 ...
3, AJ ALT, ALA, 27,0,0,37.2, ...
4, Dustin Ackley, ALY, 23,16,10,1 ...
5, 크리스티안 애덤 즈 \의 adamecr01,24, COL, NL, 69,43,3 ... 또한 시도

:

dataset=pd.read_csv('MLB2016PlayerStats2.csv',encoding='ISO-8859-9', 
delimiter=',',quoting=3) 

을 반환 어느 :

다음
"Rk      Name Age Tm Lg G GS CG  Inn Ch 
\ 
0 "1  Fernando Abad\abadfe01 30 TOT AL 57 0 0 46.2  4 

1 "2  Jose Abreu\abreujo02 29 CHW AL 152 152 150 1355.2 1337 

2 "3  A.J. Achter\achteaj01 27 LAA AL 27 0 0 37.2  6 

3 "4  Dustin Ackley\ackledu01 28 NYY AL 23 16 10 140.1 97 

4 "5 Cristhian Adames\adamecr01 24 COL NL 69 43 38 415.0 212 

    E DP Fld% Rtot Rtot/yr Rdrs Rdrs/yr RF/9 RF/G \ 
0  ...  0 1 1.000 NaN  NaN NaN  NaN 0.77 0.07 
1  ...  10 131 0.993 -2.0  -2.0 -5.0  -4.0 8.81 8.73 
2  ...  0 0 1.000 NaN  NaN 0.0  0.0 1.43 0.22 
3  ...  0 8 1.000 1.0  9.0 3.0  27.0 6.22 4.22 
4  ...  6 24 0.972 -4.0 -12.0 1.0  3.0 4.47 2.99 

Pos Summary" 
0   P" 
1   1B" 
2   P" 
3  1B-OF-2B" 
4  SS-2B-3B" 

데이터가 모습입니다 메모장에서 +

"Rk,Name,Age,Tm,Lg,G,GS,CG,Inn,Ch,PO,A,E,DP,Fld%,Rtot,Rtot/yr,Rdrs,Rdrs/yr,RF/9,RF/G,Pos Summary" 
"1,Fernando Abad\abadfe01,30,TOT,AL,57,0,0,46.2,4,0,4,0,1,1.000,,,,,0.77,0.07,P" 
"2,Jose Abreu\abreujo02,29,CHW,AL,152,152,150,1355.2,1337,1243,84,10,131,.993,-2,-2,-5,-4,8.81,8.73,1B" 
"3,A.J. Achter\achteaj01,27,LAA,AL,27,0,0,37.2,6,2,4,0,0,1.000,,,0,0,1.43,0.22,P" 
"4,Dustin Ackley\ackledu01,28,NYY,AL,23,16,10,140.1,97,89,8,0,8,1.000,1,9,3,27,6.22,4.22,1B-OF-2B" 
"5,Cristhian Adames\adamecr01,24,COL,NL,69,43,38,415.0,212,68,138,6,24,.972,-4,-12,1,3,4.47,2.99,SS-2B-3B" 
"6,Austin Adams\adamsau01,29,CLE,AL,19,0,0,18.1,1,0,0,1,0,.000,,,0,0,0.00,0.00,P" 

내 질문과 혼동하여 죄송합니다. 이 편집이 일을 정리하기를 바랍니다. 지금까지 답변 해 주신 분들께 감사드립니다.

+1

"작동하지 않았다"는 것은 무엇을 의미합니까? 오류 메시지가 나타 났습니까? – user2314737

+0

@ user2314737 가져 오기는하지만 따옴표 = 3을 사용하지 않으면 구분 기호로 데이터를 구분하지 않습니다. 데이터가 분할되었지만 설명 된 내용이 처음과 마지막 열에 반환되었습니다. – JD22

+0

샘플 코드 스 니펫, 샘플 데이터 스 니펫 및 전체 추적 (있는 경우)을 제공하십시오. 추적을 얻지 못하면 원하는 데이터 형식과 현재 얻은 데이터의 차이점을 자세히 설명하십시오. – albert

답변

0

직접 실행하면 원하는 출력을 이해할 수있었습니다.

enter image description here

내 유일한 생각은 CSV 쉼표가 변수 파일을 분리하기 때문에 거기에 내가 CSV에 대한 구분을 호출 할 필요는 s가 없다는 것입니다,하지만 그건 문제가 안된다. 나는 당신의 실제 데이터 파일에 잘못된 것이 있다고 생각하고 올바르게 저장되었는지 확인했다. 이전 의견을 반향시키고 MS-DOS 또는 Macintosh가 아닌 CSV가 UTF-8인지 확인하십시오.

행운을 빈다.

+0

AllThingsGo42에 감사드립니다. 일반 CSV 및 UTF-8로 저장하고 다시 가져 왔지만 불행히도 여전히 가져 왔습니다. 같은 결과 .... 도움을 주셔서 감사합니다. – JD22

관련 문제