2014-06-24 3 views
5

"Python for Data Analysis"에서 설명한 파일을 다운로드했으며 278 페이지에서 언급 한 예제 FEC 데이터베이스를 검토했습니다. 다음과 같은 Type 오류가 발생합니다. 내가 명령을했을 때. 내 버전 : Python 3.4; 판다 : 0.14.0. OS : Windows 8Python Pandas DataFrame : unorderable types : str()> int()

>>> fec=pd.read_csv('c:\python\P00000001-ALL.csv') 
>>> (fec.contb_receipt_amt > 0).value_counts() 
>>> TypeError: unorderable types: str() > int() 

그러나이 데이터 세트는 아닙니다. 내가 작업하고있는 데이터 세트에는 비슷한 문제가 있습니다. Int (Number) 데이터 형식을 다른 것과 마찬가지로 개체로 가져오고 숫자 (> 0)와 비교할 때 위의 오류가 발생합니다. 주위의 해결 방법은 무엇입니까? dtype 옵션을 사용하여 가져 오기를 시도했지만 int64 또는 Float64를 사용할 수 없다는 오류가 발생합니다. 나는 올바른 방법이 있다고 확신합니다. 올바른 데이터 유형으로 데이터 프레임을로드하는 방법.

도움을 주시면 감사하겠습니다.

+0

글쎄요. 이미 문자열을 int와 비교하는 것이 효과가 없다고 추론했습니다. dtypes를'read_csv' 호출로부터 추측 했어야합니다. 이것은 약간 이상합니다. 타입을 변환하면 어떻게 될까요?' fec.contb_receipt_amt = fec.contb_receipt_amt.astype (np.float64)'작동합니까? – EdChum

+1

경로에서 슬래시를 벗어나지 않는 것을 확인했습니다. 제대로로드되고 있습니까? 'fec = pd.read_csv (r'c : \ python \ P00000001-ALL.csv ')' – EdChum

+0

나는 코드를 github repos에 대해 테스트했다 : https://github.com/pydata/pydata-book/tree/ master/ch09 그리고 문제가 뭔지 모르겠으니 잘 보냈습니다. 데이터를 볼 수 있도록 링크를 게시 할 수 있습니까? – EdChum

답변

3

일부 동일한 날짜에는이 오류가 나타납니다. 먼저 유형 변경을 사용하여 해결했습니다.

시도 :

fec[[contb_receipt_amt]] = fec[[contb_receipt_amt]].astype(str) 

그런 다음 다시 카운트를 시도합니다.

관련 문제