2015-02-04 2 views
2

팬더를 사용하여 텍스트 파일 형식으로 데이터 세트를 읽으려고했습니다. 그러나 일부 문자는 올바르게 인코딩되지 않습니다. 나는있어? 아포스트로피.pandas read_csv 이상한 문자

파일을 올바르게 인코딩하려면 어떻게해야합니까? 나는 시도했다

  • encoding = "utf8" 그러나 나는 UnicodeDecodeError: 'utf8' codec can't decode byte 0xc3 in position 2044: unexpected end of data을 얻었다.

  • encoding = "latin1" 그러나 이것은 나에게 많은 것을 주었다 ???

내가 숭고한에 내 데이터를 열

  • encoding = "ISO-8859-1" or "ISO-8859-2"하지만이 또한 단지 어떤 인코딩처럼 내게 준은 ..., 나는 € ™ â이 문자를 얻었다.

    업데이트 :하지만 난 \ u0102 \ u02d8 \ XE2 \ X82 \ u0179 \ XC2 \ u015, \ u0102 \ u02d8 \ XE2 \ X82 \ u0179 \ XE2 \ X84 \ u02d8

    같은 것을 가지고 LOC를 사용하여 항목에 액세스 할 때
  • +0

    파일이 실제로 어떤 인코딩인지 알아야합니다. 파일을 어디서 받았습니까? – BrenBarn

    +0

    ISO-8859-2를 사용해 보셨습니까? –

    +0

    @AndyHayden 예, 나는 – user3362840

    답변

    1

    당신은 chardetdetermine the encoding 할 수 있습니다 :

    $ pip install chardet 
    
    >>> import urllib 
    >>> rawdata = urllib.urlopen('http://yahoo.co.jp/').read() 
    >>> import chardet 
    >>> chardet.detect(rawdata) 
    {'encoding': 'EUC-JP', 'confidence': 0.99} 
    

    기본적인 사용법은 또한 예를 들어, 큰 파일의 인코딩을 추론이 사용할 수있는 방법을 제안한다 파일이 너무 커서 메모리로 읽을 수 없습니다. 인코딩에 대한 확신이있을 때까지 파일을 읽습니다.


    this answer에 따르면 당신은 encoding="ISO-8859-2"을 시도해야합니다 :

    내 생각 엔 당신의 입력 0xC3으로 포함되어 있습니다 ISO-8859-2로 인코딩되어 있다는 점이다.


    참고 : 숭고한 올바르게 인코딩을하거나 그래서 당신이 약간의 소금과 출력의 응시 한 추론하지 않을 수 있습니다, 그것은 당신의 공급 업체에 문의하는 것이 가장 좋습니다 (당신이에서 파일을 얻고있는 곳) 실제 인코딩이 무엇인지 ...

    +0

    여전히 그 문제를 해결하지 못했습니다. – user3362840

    +0

    @user3362840 제발 chardet :)을 시도하십시오 –