2014-10-30 1 views
2

팬더는 csv, Excel, sql 등에서 데이터를 가져올 때 특정 값을 NaN으로 자동 변환합니다 (예 : pandas.io.parsers의 메소드).pandas.read_csv 명명 된 값 na_values ​​기본값

제 질문은,이 기본값은 무엇입니까?

문자열 "NA"이 자동으로 변환되는 것으로 나타났습니다. others have noted으로 데이터를 가져 오는 함수 (예 : pandas.io.parsers.read_csv)를 호출 할 때 keep_default_na=False을 전달하여이 자동 변환을 사용 중지 할 수 있습니다.

즉, "NA" 이외의 값이 자동으로 변환되는지는 알 수 없습니다. na_values ​​지정 및 keep_default_na 기본 NaN의 값이 대체됩니다 False 인 경우 부울 기본적 사실 그렇지 않으면 추가하고, :

keep_default_na : the docs에서, 내가 찾을 수있는 모든는 다음 keep_default_na 인수에 대한 설명입니다

앞서 언급 한 '기본 NaN 값'은 무엇인가요?

+4

http://pandas.pydata.org/pandas-docs/stable/io.html#na-values ​​ – Jeff

답변

1

제프는 거의 1 년 전에 링크를 제공했지만 링크를 따라 가기가 번거롭기 때문에 여기서 정보를 옮겼습니다.

['-1.#IND', '1.#QNAN', '1.#IND', '-1.#QNAN', '#N/A','N/A', 'NA', '#NA', 'NULL', 'NaN', '-NaN', 'nan', '-nan'] 

출처 :

http://pandas.pydata.org/pandas-docs/stable/io.html#na-values 그러나

이 목록은 완전하지 않습니다.

import pandas as pd 
from StringIO import StringIO 

sio = StringIO() 
sio.write('"foo","bar"\n"1",""\n"NA","4"') 
sio.seek(0) 
pd.read_csv(sio, sep=",", quotechar='"') 
    foo bar 
0 1 NaN 
1 NaN 4 

빈 문자열이 목록의 일부가 아니지만 기본적으로 여전히 NaN으로 구문 분석됩니다.

pd.read_csv(sio, sep=",", quotechar='"', 
      keep_default_na=False, 
      na_values=['-1.#IND', '1.#QNAN', '1.#IND', 
         '-1.#QNAN', '#N/A','N/A', '#NA', 'NA' 
         'NULL', 'NaN', '-NaN', 'nan', '-nan']) 

    foo bar 
0 1  
1 NaN 4 

이 목록은 기본이 될 것입니다 경우,이 두 명령 동일한 결과를 생성한다.

그렇지 않습니다. 참조

['', '-1.#IND', '1.#QNAN', '1.#IND', '-1.#QNAN', '#N/A','N/A', 'NA', '#NA', 'NULL', 'NaN', '-NaN', 'nan', '-nan'] 

팬더 버전 :

pd.__version__ 
'0.15.2' 

버그 티켓 팬더와 :

당신이 pandas.read_csv의 기본 동작을 재현하려면이 목록은 당신이 필요하다 https://github.com/pydata/pandas/issues/10700

업데이트

이것은 팬더에서 해결 0.17

+0

당신이 목록이 완전하지 생각한다면,여십시오 github에 관한 문제 : https://github.com/pydata/pandas/issues (또는 문서가 변경된 PR) – joris

+0

@joris 내가 여기에서 한 것 : https : // github.co.kr/pydata/pandas/issues/10700 – firelynx

+1

좋은 캐치, 친구. 자세한 답변 주셔서 감사합니다! – grisaitis