๊ธฐ์กด ๋ฐ์ดํฐํ๋ ์ ์ผ๋ถ๋ฅผ ๋ณต์ฌํ๊ฑฐ๋ ์ธ๋ฑ์ฑ ํ ๊ฐ์ ์์ ํ ๋ ์ข ์ข ๋ฐ์ํ๋ค.
๊ธฐ์กด ๋ฐ์ดํฐํ๋ ์์ ๊ฐ์ ธ์(๋ณต์ฌ) ๋ค๋ฅธ ๋ฐ์ดํฐํ๋ ์์ ๋ง๋ค ๋ ์๋ณธ์ ์์ ํ ์ง ๋ณต์ฌ๋ณธ์ ์์ ํ ์ง ๋ชฐ๋ผ์ ๋ฐ์ํ๋ ์ค๋ฅ๋ผ๊ณ ํ๋ค.
๋ ๊ฐ์ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์๋๋ฐ, ํ๋๋ ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์ํ๋ ๊ฒ์ด๊ณ ํ๋๋ copy๋ฅผ ์ฌ์ฉํ๋ ๊ฒ!
1. ๊ฒฝ๊ณ ๋ฌด์
pd.set_option์ ์ฌ์ฉํ ๊ฒฝ๊ณ ๋ฌธ ์ ๊ฑฐ
# SettingWithCopyError --> ์ค๋ฅ raise ๋ก ์ฝ๋ ์คํ X
pd.set_option('mode.chained_assignment', 'raise')
# SettingWithCopyWarning --> ์คํ์ ๋์ง๋ง ๊ฒฝ๊ณ ๋ฌธ ๋ธ
pd.set_option('mode.chained_assignment', 'warn')
# error, warning ๋ฌด์ --> ๊ฒฝ๊ณ ๋
pd.set_option('mode.chained_assignment', None)
2. ๊ธฐ์กด ๋ฐ์ดํฐํ๋ ์์ ๋ณต์ฌํด ์ฌ์ฉ
๋ง์ฝ df1์์ df2๋ฅผ ๊ฐ์ ธ์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ผ๋ฉด copy()๋ช ๋ น์ด๋ก ๋ถ๋ฆฌ๋ฅผ ํด์ฃผ์ด ์ค๋ฅ๊ฐ ๋์ง ์๋๋ก ํ๋ค.
df2 = df1.copy()
728x90