1
에 .loc와 값 :덮어 쓰기 할머니는 내가 다음 코드 라인에 필요한 작업을 해결하기 위해 노력 팬더
df['Age'][np.isnan(df["Age"])] = rand1
그러나 이것은 "SettingWithCopyWarning"을 제기하고 나는 위치를 생각한다 .loc
기능을 사용하여 데이터 프레임의 Nan 값 (열 'Age')을 사용하면 더 좋은 방법 일 수 있습니다.
나는 이미 documentation을 살펴 봤지만 어떻게이 문제를 해결할 수 있는지 알지 못합니다. .loc
으로 해결 방법을 찾을 수 없습니다.
나는 모든 힌트와 조언을 부탁드립니다.
df.Age = df.Age.fillna(rand1)
솔루션을 loc
으로 :
df.loc[np.isnan(df["Age"]), 'Age'] = rand1
#same as
#df.loc[df["Age"].isnull(), 'Age'] = rand1
또한 indexing view versus copy을 확인할 수있는 몇 가지 값으로 NaN
을 대체하기위한
도와 주셔서 감사합니다 많이. 코드는 완벽하게 작동합니다. .loc 함수 내부에서 무슨 일이 일어나는지 설명해 주시겠습니까? 처음에는 나이와 같은 색인에 액세스하기위한 것이라고 생각했습니다. 왜 우리는 .isnan 부분을 통과 한 다음 다시 Age 칼럼을 통과합니까? 문서를 읽은 후에도 이것을 이해하는 데 정말로 어려움이 있습니다. – ErnieandBert
'np.isnan (df [ 'Age'])'는 불리언 값의 마스크를 반환하고'loc'와의 조합으로 값을'True' 값으로'rand1'으로 설정했기 때문에 작동합니다. 나는 더 나은 설명이이 [판다 튜토리얼] (http://tomaugspurger.github.io/modern-1.html)에있다라고 생각한다 - 제목'SettingWithCopy'를 검사한다 (다른 마스크'f [ 'a'] <= 3'를 사용한다. – jezrael
그리고이 튜토리얼은 [여기] (http://pandas.pydata.org/pandas-docs/stable/tutorials.html)입니다 -'현대 팬더'(아주 좋은 설명) – jezrael