작성
·
199
1
답변 1
1
안녕하세요.
다음 함수는
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 구문등을 넣어서, 어떻게 변수값이 바뀌는지를 출력해보셔도 상당히 이해에 도움이 되고요. 또, 조금 이해가 어려운 구문이 있으면, 강의 영상을 여러번 반복해보시면서, 계속 고민해보시면, 점점 관련 사고가 생기면서, 이해가 되실 수 있습니다. 제가 경험한 팁이라서, 이 부분도 제안을 드려봅니다.
감사합니다.