inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[테디노트] 한 방으로 끝내는 판다스Pandas (전자책 포함)

연습문제 #9 - 타이타닉 승객 나이 결측치 채우기 (해설)

연습문제 #9 - 타이타닉 승객 나이 결측치 채우기 (해설) 강의 질문

414

최원빈

작성한 질문수 45

0

안녕하세요 선생님. 연습문제 관련 질문이 있어 글을 올립니다.

강의에서 결측치 부분을 채워준 것을 데이터프레임에도 적용을 하려면 = 을 붙여주셔야 된다고 하신 것 같아요.

코드로 말씀드리면,

df1.loc[df1["sex"] == "male", "age"] = df1.loc[df1["sex"] == "male", "age"].fillna(male_mean)

이렇게요.

그런데 제가 주워듣기로는 fillna()안에 inplace=True 를 쓰면 앞에 df1.loc[df1["sex"] == "male", "age"] = 이 코드를 쓰지 않고도 데이터프레임에 적용이 된다고 들었습니다.

그런데 막상해보니 적용이 안되더라고요.

혹시 inplace에 관하여 조금 설명을 해주실 수 있을까요?

감사합니다.

pandas

답변 1

1

런어데이

안녕하세요?

답변 드리겠습니다.

inplace=True 라는 옵션은 원본에 반영해 주는 옵션이 맞습니다.

다만, loc로 조건 필터링에 대한 결과 값에 대하여 fillna(값, inplace=True)로 지정하면 질문 주신 내용처럼 채워지지 않습니다.

이유는 loc로 필터링한 결과값이 복사본이 먼저 만들어 지고 만들어진 복사본에 대하여 fillna(값, inplace=True)를 적용 했기 때문에 원본에는 반영이 안됩니다.

따라서, loc로 연계한 fillna()는 제대로 반영이 어렵기 때문에 재대입 방식을 권장 드리고 있습니다.

추가로, 파이썬 커뮤니티에서도 위와 같은 현상 때문에 재대입 하는 방식을 권장하고 있습니다.

 

감사합니다.

수강 연장 문의드립니다.

0

20

2

강의 연장 문의

0

29

2

수강 신청 연장 문의드립니다.

0

40

2

피드백 내용 문의드립니다.

0

38

1

작업형 1번문제... 환경관련

0

30

2

12회 기출은 언제 업데이트 될까요??

0

38

2

8/6 작성한 연장문의 질문글에 대한 재요청

0

38

2

수강기간 연장 문의

0

40

2

수강기간 연장문의

0

37

2

수강기간 연장 요청 문의드립니다

0

38

2

수강 기간 연장 문의

0

47

2

수강연장 가능 문의 (기간 약 한달반)

0

60

2

수강기간 연장 가능할까요 선생님

0

74

2

Section15. 수업에 사용하는 데이터 주소가 다 보이지 않아서 실습을 위한 데이터를 다운 받지 못하고 있습니다.

0

56

3

수강연장요청 문의

0

90

2

7강 강의 학습자료에 대해서 질문있습니다.

0

43

1

아무래도 다음 시험 연장은 어렵겠죠?

0

109

2

빅분기 12회 결과 관련 문의

0

112

1

한권으로 끝내는 판다스 노트

0

279

1

강의 누락 관련 질문

0

255

1

강의 교재 관련 질문

0

271

1

연습문제 #10 관련질문

0

244

1

.5f 관련 질문

0

428

1

chunk size 관련 질문

0

363

1