작성
·
254
1
ㄴㅇㄹ
Province_State Country_Region Confirmed
0 Anhui China 1.0
1 Beijing China 14.0
2 Chongqing China 6.0
3 Fujian China 1.0
5 Guangdong China 26.0
6 Guangxi China 2.0
7 Guizhou China 1.0
8 Hainan China 4.0
9 Hebei China 1.0
11 Henan China 5.0
13 Hubei China 444.0
14 Hunan China 4.0
16 Jiangsu China 1.0
17 Jiangxi China 2.0
19 Liaoning China 2.0
20 Macau China 1.0
21 Ningxia China 1.0
24 Shandong China 2.0
25 Shanghai China 9.0
26 Shanxi China 1.0
27 Sichuan China 5.0
28 None None NaN
29 Tianjin China 4.0
31 None None NaN
33 Yunnan China 1.0
34 Zhejiang China 10.0
35 None None NaN
36 None None NaN
37 NaN Korea, South 1.0
Province_State Country_Region Confirmed
0 Anhui China 1
1 Beijing China 14
2 Chongqing China 6
3 Fujian China 1
5 Guangdong China 26
6 Guangxi China 2
7 Guizhou China 1
8 Hainan China 4
9 Hebei China 1
11 Henan China 5
13 Hubei China 444
14 Hunan China 4
16 Jiangsu China 1
17 Jiangxi China 2
19 Liaoning China 2
20 Macau China 1
21 Ningxia China 1
24 Shandong China 2
25 Shanghai China 9
26 Shanxi China 1
27 Sichuan China 5
28 Taiwan Taiwan 1
29 Tianjin China 4
31 Washington US 1
33 Yunnan China 1
34 Zhejiang China 10
35 NaN Japan 2
36 NaN Thailand 2
37 NaN Korea, South 1
두 코드의 차이는 return의
위치입니다.
근데 왜 Confirmed 타입과 값이 이렇게 차이나나여?
답변 1
1
안녕하세요. 답변 도우미입니다.
두 스크린샷 모두 동일한 함수 func
를 정의하고 있으며, doc
라는 DataFrame에 apply
메소드를 사용하여 이 함수를 적용하고 있습니다. 두 코드 사이의 주요 차이점은 return row
문의 위치입니다.
첫 번째 이미지에서는 return row
가 if
블록 내부에 있습니다. 이는 if
조건이 참인 경우에만 행(row)이 반환되고, 그렇지 않으면 함수는 None
을 반환합니다. 즉, 조건이 거짓인 경우 함수는 아무런 값도 반환하지 않기 때문에, apply
메소드는 해당 행에 대해 None
을 받게 되고, 그 결과로 해당 행은 변경되지 않습니다.
두 번째 이미지에서는 return row
가 if
블록 밖에 있습니다. 이는 if
조건의 참/거짓 여부와 관계없이 함수가 항상 행을 반환하도록 합니다. if
조건이 참이면 'Country_Region' 값이 json_data로 업데이트되고, 거짓이더라도 원래 행이 그대로 반환됩니다.
'Confirmed' 타입과 값이 달라지는 것은, apply
메소드가 행을 처리할 때 함수의 반환 값을 DataFrame에 다시 할당하기 때문입니다. 첫 번째 경우에는 'Confirmed' 열이 함수에서 처리되지 않는다면, 원본 값이 그대로 유지되지만, 두 번째 경우에는 어떤 변화가 있었을 때 그 변화가 적용되어 결과적으로 'Confirmed' 열의 타입이나 값에 영향을 줄 수 있습니다.
감사합니다.