inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

핵심만 빠르게, 입문자를 위한 파이썬(Python)과 판다스(Pandas)

데이터 처리를 위한 판다스 연습문제 솔루션

Pandas 연습문제 4. apply 활용 질문

572

지루한 청어

작성한 질문수 8

0

안녕하세요, 학습하다가 이해가 되지 않는 부분이 있어 질문드립니다!

4. apply 활용

각 행에 대해 남성 인구의 합을 구하여 남자인구 합계 이름을 가진 컬럼을 생성해주세요.

위 문제에서,

def getManPopulation(row):
    man = 0
    
    for i in row.index:
        if "남자" in i:
            man += row[i]
            
    return man

sample['남자인구 합계'] = sample.apply(getManPopulation, axis=1)

sample.head()

 

getManPopulation(row):

여기 row자리에 데이터프레임(sample)이 들어간다고 생각하면

for i in row.indexrow.index가 위에서 index로 설정해놓은 '일자' 컬럼이 될텐데 어떻게 if "남자" in i가 성립되는건가요?

밑에서 row[i]를 사용하는 거 보면 row는 데이터프레임이고 i는 컬럼명이 맞는 것 같은데 이해가 되지 않아 질문드립니다.

 

감사합니다!

pandas python

답변 1

1

Jay

row.index는

남자0~9세남자10~14세남자15~19세남자20~24세남자25~29세남자30~34세...여자45~49세여자50~54세여자55~59세여자60~64세여자65~69세여자70~74세여자75~79세

이런식으로 데이터프레임 컬럼입니다.

if "남자" in i 는 컬럼명에 '남자'라는 문자열이 포함되어 있는지 검사합나다.

row[i]는 row의 value를 의미합니다. 즉, 인구수를 의미하게 됩니다.

추가적으로 row는 apply 함수를 통해 적용되는데이터프레임의 행입니다. 시리즈형 데이터라고 표현하는 것이 바른 표현입니다!

감사합니다.

0

지루한 청어

row를 데이터프레임 그 자체로 착각하고 있었네요! 데이터프레임의 행이자 시리즈형 데이터라고 말씀해주시니 이해했습니다 ㅎㅎ

매번 빠르고 친절한 설명 감사드립니다.

테마맵 만들기 위해.

0

9

1

SQL 집중학습

0

14

1

NULL과 0

0

11

1

26년 1회 기출문제 11번 질문드립니다

0

18

1

경력기술서는 어떤 방향이 좋을까요?

0

13

2

__le__, __ge__ 관련 질문

0

10

0

수강한 강의 내용 없음

0

8

0

업캐스팅 문제예시5 & 업캐스팅 문제 예시 6

0

15

1

V1.2 VS V.091

0

20

2

호두 AI님 강의 차이점에 대해 문의 드립니다.

0

22

3

네이버 로그인 자동화 pyperclip 사용시에도 자동로그인방지가 발생합니다.

0

14

3

안녕하세요 화면이 영상과 실제가 달라 문의드립니다

0

12

1

split('T')일때는 T만 제거되는거고 공백은 제거되지 않는 건가요?

0

21

2

파이썬 언어 업데이트, 언어별 학습자료 업데이트

0

29

2

변수의 문자열 출력문에 대해서 질문이 있습니다.

0

17

1

C, java, python 언어 기출문제 강의 질문

0

23

2

인터프리터 설정이 안됩니다.

0

16

1

책이랑 강의랑 순서나 예제가 다른것 같네요

0

15

1

파이썬 연습문제 6번 관련 문의

0

76

1

divide 함수 축 질문

0

69

1

쥬피터노트북이 안깔려요

0

461

1

pandas 연습문제 4번 관련

0

360

1

마크다운 blank line

0

827

1

내국인 생활인구.csv 다운위치

0

604

1