파이썬에서 큰 csv 파일을 읽었습니다. 데이터 세트 및 누락 된 값이 코딩되는 방법에 대한 설명은 없습니다.기호 NaN이 누락 된 값에 대한 문자열 또는 파이썬 예약 기호인지 확인하십시오.
누락 된 값을 모두 0으로 바꾸려면 function fillna()
을 사용할 수 있다고 생각합니다. 그러나, 내 질문 :이 함수는 fillna()
생각하고 데이터 프레임에있는 NaN
기호가 파이썬 예약 기호 오른쪽 경우 누락 된 값을 인식 할 수있는 누락 된 값으로 작동하는 다른 함수가있을 수 있습니다? NaN
이 문자열 인 경우 (예 : "NaN"
) fillna()
함수는 해당 권한을 감지하지 못합니다.
나는 여기에 실험을
import numpy as np
a = pd.DataFrame({'a':[1,2,'NaN'], 'b':['NaN',1,np.nan]})
a.fillna("")
않았다 나는 공백없는 값을 대체하려고합니다. 그러나 알 수 있듯이이 fillna()
함수는 np.nan
만 인식하지만 문자열 "NaN"
을 누락 값으로 인식 할 수 없습니다. 이해할 수 있습니다.
여기 내 질문은 다음과 같습니다. read_csv
또는 원시 함수에서 누락 된 값을 처리하기 위해 python이 작동하는 다른 함수 (실제로는 인코딩 된 것)가 실제로 어떻게됩니까? 이러한 가져 오기 기능이 원시 데이터 세트의 어떤 기호를 "볼"경우 csv 또는 txt 파일 (또는 다른 형식)을 읽을 때 예약 된 기호 NaN
을 사용하여 원시 데이터 조각을 자동으로 대체합니까? 예를 들어, 원시 데이터를 읽거나, 공백을 보거나 "\ N"과 같은 심볼을 보았을 때, 그들은 무엇을 할 것입니까? 나는 그들이 "\ N"을 본다면, 그냥이 기호를 문자열로 만들 것입니다, 맞습니까? 그러나 그들이 공백을 보게되면, 그들은 무엇을 할 것인가?
두 번째 질문 : 데이터 세트에서와 마찬가지로 누락 된 값을 나타 내기 위해 다중 기호를 사용할 수 있습니다. 예를 들어 파이썬 예약 기호 NaN
(원시 데이터를 읽을 때 자동 생성됨)은 누락 된 값을 나타냅니다. 문자열 "\N"
은 누락 된 값을 나타냅니다. blank는 또한 누락 된 값을 나타냅니다. 그래서 나는이 모든 종류의 누락 된 값 기호를 하나로 변환하는 함수, 즉 python 예약 기호 NaN
을 작성해야합니다. 나는 다음과 같은
def nullify(x):
if x == "\\N":
return "NaN"
else:
return x
그럼 내가 "NaN"
문자열의 무리보다는 fillna()
가 잡을 데 실패와 같은 기능을하게 파이썬 예약 된 기호 NaN
을 가지고 있음을 발견했다. 올바른 방법이 nullify()
그것은 내가 현실 세계 원시 데이터와 함께 놀러 처음 시작할 때입니다, 많은 흥미로운 일들이 나타나기 시작
import numpy as np
def nullify(x):
if x == "\\N":
return np.nan
else:
return x
이다 쓰고 있는지 궁금해. 모든 제안을 부탁드립니다.