• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

pandas 라이브러리로 실제 데이터 전처리하기2 8:42

24.01.06 02:13 작성 조회수 126

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 rowif 블록 내부에 있습니다. 이는 if 조건이 참인 경우에만 행(row)이 반환되고, 그렇지 않으면 함수는 None을 반환합니다. 즉, 조건이 거짓인 경우 함수는 아무런 값도 반환하지 않기 때문에, apply 메소드는 해당 행에 대해 None을 받게 되고, 그 결과로 해당 행은 변경되지 않습니다.

두 번째 이미지에서는 return rowif 블록 밖에 있습니다. 이는 if 조건의 참/거짓 여부와 관계없이 함수가 항상 행을 반환하도록 합니다. if 조건이 참이면 'Country_Region' 값이 json_data로 업데이트되고, 거짓이더라도 원래 행이 그대로 반환됩니다.

'Confirmed' 타입과 값이 달라지는 것은, apply 메소드가 행을 처리할 때 함수의 반환 값을 DataFrame에 다시 할당하기 때문입니다. 첫 번째 경우에는 'Confirmed' 열이 함수에서 처리되지 않는다면, 원본 값이 그대로 유지되지만, 두 번째 경우에는 어떤 변화가 있었을 때 그 변화가 적용되어 결과적으로 'Confirmed' 열의 타입이나 값에 영향을 줄 수 있습니다.

감사합니다.