์๋ ํ์ธ์,
์ต๊ทผ pandas๋ nullable ์ ์ dtype์ ๋์
ํ์ต๋๋ค.
https://pandas.pydata.org/pandas-docs/stable/user_guide/integer_na.html
numpy๊ฐ ์ด๋ฌํ ๋ฐฐ์ด์ ์๋์ผ๋ก float ์ ํ์ผ๋ก ๋ณํํ๊ณ np.nan์ผ๋ก ์ฑ์ธ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ค ์ด์ ๋ก ๊ฐ์ฒด๋ก ๋ณํํฉ๋๋ค.
pd.DataFrame({'col': [1, np.nan, 3]}).astype('UInt8').values.dtype
์ด๊ฒ์ ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๋ก ์ด์ด์ง๋๋ค.
np.nanmax(pd.DataFrame({'col': [1, np.nan, 3]}).astype('UInt8').values)
"TypeError: NA์ ๋ถ์ธ ๊ฐ์ด ๋ชจํธํฉ๋๋ค"๋ฅผ ๋ฐํํฉ๋๋ค.
์์ ์ธ๊ฐ์ ?
์์ ์ธ๊ฐ์ ?
nullable ์ ์๋ NumPy ์ ํ์ด ์๋๊ธฐ ๋๋ฌธ์ ์๋ผ๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค.
๋์ํฉ๋๋ค. ์ด๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ํ ๊ฒ์ด๋ฉฐ ์ผ์ด ์์๋๋ก ์๋ํ๋ค๋ ์๋ฏธ์ ๋๋ค. NumPy๊ฐ ์ด๋ ์์ ์์ ์ด๊ฒ์ ์ดํดํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ์ง๋ ์์ง๋ง ๊ณง ์ผ์ด๋ ๊ฒ ๊ฐ์ง๋ ์์ต๋๋ค.
์๋ก์ด UInt8
๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ค ์๋ฏธ์์๋ NaN
์ค์ ๋ก NA์ ๊ฐ์ง ์๊ณ pandas๋ ์ด ๊ตฌ๋ถ์ ๋ ๋ช
ํํ๊ฒ ํ๊ธฐ ์ํด pd.NA
๋ฅผ ๊ฐ๊ฒ ๋์์ต๋๋ค.
@Kreol64 ํฌ๋ ์ธก์์ ์ด์ ๋ํด ๋ ผ์ํ๊ธฐ ์ํด pandas-dev/pandas#37460์ ์ด์์ต๋๋ค.