2014-06-10 3 views
0

파이썬 스크립트에서 읽고 자하는 일련의 탭으로 구분 된 파일이 있습니다. 어떤 이유로 파일을 가져올 때 모든 텍스트 열이 NaN으로 돌아옵니다. 입력 파일의Python Pandas는 모든 텍스트 열을 NaN으로 표시합니다.

샘플 : 여기

Blah Blah 
Blah Blah 
Blah Blah 
Blah Blah 
Blah Blah 
Blah Blah 
Blah Blah 
Period: Oct 28 2013 - Apr 27 2014 
Note: 
Brand Variant        Industry         Major Category        Market          Media Type         Parent Company        Product Category       Report Period (multiple)     PCC Sub Group        Subsidiary         Units $$$ (000) 
3 LADIES HAND-DIPPED CANDIES CANDY CONFECT., SNACKS & SOFT DRINKS CONFECTIONERY & SNACKS Columbus Combo Local Newspaper  COTTAGE FOOD PRODUCTION OPERATION CANDY 11/18/13 - 11/24/13  F211 CANDY & GUM COTTAGE FOOD PRODUCTION OPERATION 1 0.286 
3 MUSKETEERS CANDY BAR CONFECT., SNACKS & SOFT DRINKS CONFECTIONERY & SNACKS Atlanta Combo Spot Radio MARS INC CANDY BAR 11/04/13 - 11/10/13  F211 CANDY & GUM MARS SNACKFOOD US LLC 22 1.403 

내 파이썬의 조각 (3.3)이다

df = read_csv(csvFile, delimiter='\t', header=[9]) 
print(df) 

출력 다음

Brand Variant        \ 
3 LADIES HAND-DIPPED CANDIES CANDY          NaN 
3 MUSKETEERS CANDY BAR             NaN 

            Industry         \ 
3 LADIES HAND-DIPPED CANDIES CANDY          NaN 
3 MUSKETEERS CANDY BAR             NaN 

            Major Category       \ 
3 LADIES HAND-DIPPED CANDIES CANDY          NaN 
3 MUSKETEERS CANDY BAR             NaN 

            Market         \ 
3 LADIES HAND-DIPPED CANDIES CANDY          NaN 
3 MUSKETEERS CANDY BAR             NaN 

            Media Type        \ 
3 LADIES HAND-DIPPED CANDIES CANDY          NaN 
3 MUSKETEERS CANDY BAR             NaN 

            Parent Company       \ 
3 LADIES HAND-DIPPED CANDIES CANDY          NaN 
3 MUSKETEERS CANDY BAR             NaN 

            Product Category       \ 
3 LADIES HAND-DIPPED CANDIES CANDY          NaN 
3 MUSKETEERS CANDY BAR             NaN 

            Report Period (multiple)     \ 
3 LADIES HAND-DIPPED CANDIES CANDY          NaN 
3 MUSKETEERS CANDY BAR             NaN 

            PCC Sub Group        \ 
3 LADIES HAND-DIPPED CANDIES CANDY          NaN 
3 MUSKETEERS CANDY BAR             NaN 

            Subsidiary        \ 
3 LADIES HAND-DIPPED CANDIES CANDY          NaN 
3 MUSKETEERS CANDY BAR             NaN 

            Units $$$ (000) 
3 LADIES HAND-DIPPED CANDIES CANDY NaN  NaN 
3 MUSKETEERS CANDY BAR    NaN  NaN 

내가 나타났습니다 내 첫 번째 열은 데이터 프레임의 인덱스로 설정되어 있지만 index_col = False는 col을 원할 때만 ValueError를 반환합니다. 럼 번호. 마찬가지로 dtype을 str에 설정하려고 시도했지만 행운은 없습니다. 마지막으로 쉼표로 구분 된 다른 파일에서 텍스트 데이터가 포함 된 행을 다시 가져올 수있었습니다. 나는 무엇을 해야할지에 관해서 잃어버린 ...

내가 주목하는 것 중 하나는 필드 사이에 더 비슷하다. & 공백이다.

+0

기본적으로'index_col = None'으로 지정하지 않아도됩니다. 'df = read_csv (csvFile, delimiter ='\ s + ', header = [9])'작동합니까? – EdChum

+0

@EdChum, 나는'index_col = None'이'index_col = False'와 같지 않다고 생각합니다. – Happy001

+1

@ Happy001 그들은 같지 않을 수도 있지만 문서가 기본값 인'None'입니다. 이는 OP가 의도하고 불필요한 것입니다 – EdChum

답변

1

"Blah Blah"의 처음 몇 줄을 무시하려면 header= 대신 skiprows=을 사용하십시오. 이 시도 : 파일이 구분 기호를 후행했다

df = pd.read_csv(csvFile, sep='\t', skiprows=9, index_col=False) 

내가 생각이다 "첫 번째 열은 dataframe의 인덱스로 설정 될 것으로 보인다"이유. 이 경우 index_col=False이 도움이됩니다. Handling of trailing delimiters in read_csv

입력 파일이 없으므로 복사 한 텍스트에 탭 (텍스트의 모든 공백)이 없어 졌으므로 테스트 할 수 없습니다. 그러나 저희에게 알려주십시오.

+0

감사합니다. skiprows 사용에 대한 아이디어는 pd.read_csv()가 dtype을 자동 할당하려고 할 때 도움이되는 것 같았습니다. 또한 나는 skiprows를 마친 후에 index_col = False를 마침내 사용할 수있었습니다. – dreyco676

+0

다른 사람이이 게시물을 읽는 경우의 최종 코드는 다음과 같습니다. 'df = read_csv (csvFile, delimiter = '\ t', skiprows = [0,1,2,3,4,5,6,7,8], index_col = False)' – dreyco676

관련 문제