inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] 처음하는 파이썬 데이터 분석 (쉽게! 전처리, pandas, 시각화 전과정 익히기) [데이터분석/과학 Part1]

pandas 라이브러리로 실제 데이터 전처리하기4

강의 1:55초 코드가 이해가 안갑니다.

225

제리

작성한 질문수 2

1

강의 1:55초입니다.
def country_name_convert(row): if row['Country_Region'] in json_data: return json_data[row['Country_Region']] return row['Country_Region']
이 코드가 이해가 가질 않는데요
여기서 if문 내에 json_data이 value를 리턴해주는 이유가 무엇인지 궁금합니다.
아래는 제가 작성한 코드입니다.
def modify_cn(row):
    if row['Country_Region'] in json_data:
        row['Country_Region'] = json_data[row['Country_Region']]
  return row
 
함수 안에 return을 두 번 사용 하는 것은 처음 보는데 저 함수만 강의 코드로 바꿔주면 정상 작동하네요ㅠㅠ
 

pandas python

답변 1

1

잔재미코딩 DaveLee

안녕하세요.

다음 함수는 

def country_name_convert(row):

    if row['Country_Region'] in json_data:

        return json_data[row['Country_Region']]

    return row['Country_Region']

 

다음 실제 적용 구문과 연결해서 보시면 좋을 것 같아요.

    doc['Country_Region'] = doc.apply(country_name_convert, axis=1)   # 4. 'Country_Region'의 국가명을 여러 파일에 일관되게 변경하기

 

apply() 의 결과가 doc['Country_Region']  이기 때문에, apply() 내의 함수인 country_name_convert 의 리턴값은 해당 컬럼값이어야 해요.

그래서, return 할 때, row 라는 특정 행 전체를 리턴하는 것이 아니라, row['Country_Region'] 라는 특정 컬럼값을 리턴한 것입니다.

 

json_data 는 사전 데이터로, 어떤 국가이름(A)을 어떤 국가명(B)으로 변환할지가 들어 있고,

{'Mainland China': 'China',

 'Macau': 'China',

 

row['Country_Region'] 는 A 에 해당하는 값이 들어 잇기 때문에,

json_data[row['Country_Region']] 은 A 에 해당하는 어떤 국가명(B) 값이 되고, 

이를 특정 컬럼값으로 리턴하게 해놓았습니다.

 

또 리턴이 두개 있다하더라도, if 문 조건에 맞게 들어가면, 리턴을 하면서, 이후 두번째 리턴 구문은 실행되지 않고, 만약 if 문 조건이 맞지 않으면, 두번째 리턴 구문만 실행된다고 보시면 좋을 것 같습니다.

    if row['Country_Region'] in json_data:

        return json_data[row['Country_Region']]

    return row['Country_Region']

 

각 구문에 print 구문등을 넣어서, 어떻게 변수값이 바뀌는지를 출력해보셔도 상당히 이해에 도움이 되고요. 또, 조금 이해가 어려운 구문이 있으면, 강의 영상을 여러번 반복해보시면서, 계속 고민해보시면, 점점 관련 사고가 생기면서, 이해가 되실 수 있습니다. 제가 경험한 팁이라서, 이 부분도 제안을 드려봅니다.

감사합니다.

 

Python 3 표시 없습니다.

0

72

1

강의실습 말고 강의에 대한 자료(pdf)가 없을까요?

0

87

1

구글 코랩과 아나콘다

0

105

1

강의와 다르게 오류가 뜨는 이유가 뭘까요?

0

115

1

COVID-19-master 관련 등 자료 누락

0

101

1

수업자료에 python_core_summary.ipynb 파일이 포함되어 있지 않습니다!

1

109

1

json.dumps관련된 질문

0

83

1

빅분기대비

0

118

1

파이썬으로 Plain Text 포멧 파일 다루기 연습문제 질문

0

101

1

강의자료 어디서 다운로드받나요?

0

150

1

pandas 라이브러리의 quotechar 인자에 대해 질문드립니다

0

107

1

iplot 에러 문제

1

209

1

플래그

0

79

1

플래그 라이브러리

0

91

1

CSV 파일 쓰기 다른 기법(사전 타입으로 쓰기) 관련

0

189

1

CSV 파일 읽을 때 오류

0

206

1

read() 함수 사용할 때 3번째 줄에 data로 출력 또는 print(data)로 출력 차이

0

141

1

강의 교재 및 실습 파일 제공되나요?

0

189

1

deep_data_and_visual 파일에서 에러가 납니다.

0

189

1

apply()함수

0

210

1

pandas groupby sum 질문

1

278

1

pandas_eda 자료 맨아래 heatmap 숫자가 안나옵니다

0

363

2

pandas_eda 힛맵에서 숫자가 안떠요

0

261

1

수업 자료에 pandas_basic 파일이 없습니다..!

0

284

1