2014-11-13 3 views
1

일부 트랜잭션 데이터가 포함 된 Excel 스프레드 시트가 있습니다. 팬더 데이터 프레임으로 가져 오기를 시도했습니다 :pandas.ExcelFile에서 가져온 Pandas 데이터 프레임의 정렬되지 않은 열

>>> import pandas as pd 
>>> xlsfile = pd.ExcelFile("/data/transactions.xls") 
>>> data = xlsfile.parse('data') 

... 그리고 언뜻보기에는 좋았습니다.

enter image description here

... 종종 이해가되지 않은 값을했다 : 그럼 내가 열 네 가지 값 중 하나를 포함해야합니다 (즉, '지역 선박') 것으로 나타났습니다.

>>> len(data['Ship To Region'].unique()) 
5007 

값 세포가 어떻게 든 잘못된 컬럼에 들어온다 이웃에서 : 값이, 대부분의 경우 올바른 열에서 생을 마감하지만,이 경우 아니었다 인스턴스의 수천이있다.

>>> for value in data['Ship To Region'].unique(): 
...  print value 
... 

Americas 
EMEA 
APAC 
nan 
Ship To Name 
Justin Bieber 
Marie Curie Industries 
BKS Iyengar 
[...etc...] 

내가 잘못하고있는 것을 볼 수 있습니까?

+0

xlrd를 사용하여 구문 분석을 시도 하시겠습니까? 대신 CSV를 사용할 수 있습니까? – smushi

+0

감사합니다. @smushi. 나는 스프레드 시트를 CSV로 저장하고 Pandas의'pd.read_csv()'를 사용했지만, 불행히도 같은 결과를 얻었다. 아마 중간 단계로'xlrd' 또는'openpyxl'을 사용하게 될 것입니다.하지만 약간의 kludge처럼 느껴질 것입니다. –

답변

0

확실히 이상합니다. 팬더의 어떤 버전을 사용하고 있습니까?

그건 그렇고, 당신은 pd.read_excel()을 사용하여 한 줄에 모두 할 수 있습니다.

+0

감사합니다. @BobHaffner. 팬더 버전 0.14.1을 사용하고 있습니다. 필자는'pd.read_excel()'을 시도해 보았고 같은 결과를 얻었지만, 더 파이썬 적이라는 데 동의합니다. –

+0

좋아, 내가 당신을 위해 가지고있는 조언은 팬더를 업그레이드하는 것이다. 미안하지만별로 도움이 안돼. –

+0

@BobHaffner님께 감사드립니다. 방금 팬더를 0.15.1로 업그레이드했지만 여전히 동일한 동작을 경험했습니다. –

관련 문제