์ธ๋ฑ์ฑ์ ๋ฐ์ดํฐ ํ๋ ์์๋ ์ ์ฉํ ์ ์๋๋ฐ, ํ๋ค์ค์์ ํน์ ํ(row)๋ ์ด(column)์ ๊ณจ๋ผ๋ผ๋ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ผ๋ก loc์ iloc๊ฐ ์๋ค.
01. loc
loc๋ location์ ์ฝ์ด๋ก, ๋ฐ์ดํฐ ํ๋ ์์ ํ ๋๋ ์นผ๋ผ์ label์ด๋ boolean array๋ก ์ธ๋ฑ์ฑํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ฆ, ์ฌ๋์ด ์ฝ์ ์ ์๋ ๋ผ๋ฒจ ๊ฐ์ผ๋ก ํน์ ๊ฐ๋ค์ ๊ณจ๋ผ์ค๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
ใฐ๏ธ loc ์ฌ์ฉ๋ฐฉ๋ฒ
df.loc[ํ ์ธ๋ฑ์ฑ ๊ฐ, ์ด ์ธ๋ฑ์ฑ ๊ฐ]
๋จผ์ ํ๋์ ๋ฐ์ดํฐ ํ๋ ์์ ๋ถ๋ฌ์จ ๋ค, ๋ณ์ df1์ผ๋ก ์ ์ธํ๋ค.
loc[ ] ์ ํ๋์ ๊ฐ๋ง ์ ๋ ฅํ๋ค๋ฉด ๊ทธ์ ํด๋น๋๋ ํ๋์ ํ๋ง ๋ฝ์ ์จ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค. ์์ ๊ฒฝ์ฐ df1.loc[0]์ ์ ๋ ฅํ ๊ฒ์ 'df1์ด๋ผ๋ ์ ์ฒด ๋ฐ์ดํฐ ํ๋ ์์์ ์ธ๋ฑ์ค ์ด๋ฆ์ด 0์ธ ํ๋ง ์ถ๋ ฅํด์ ๊ฐ์ ธ์'๋ผ๋ ์๋ฏธ๊ฐ ๋๋ค. ์ถ๋ ฅ๋ ๊ฒฐ๊ณผ ๊ฐ์ ๋ณด๋ฉด ์ธ๋ก๋ก ๋ฐฐ์ด๋์ด ์์ด์ ํท๊ฐ๋ฆด ์ ์์ง๋ง,
์ค์ ๋ก๋ ์ด๋ ๊ฒ ์ธ๋ฑ์ค ์ด๋ฆ์ด 0์ธ ํ์ด ์ ํ๋์ด ์ถ๋ ฅ๋๊ฒ์ด๋ค.
์ด๋ฒ์๋ ์์ ๋นจ๊ฐ ๋ค๋ชจ ๋ฐ์ค์์ ์๋ ํน์ ๊ฐ๋ง์ ์ถ์ถํด๋ณด์. ํด๋น ๊ฐ์ ํ์ ์ธ๋ฑ์ค๋ช ์ด 0, 'Name'์ด๋ผ๋ ์นผ๋ผ์ ์๋ ๊ฐ์ด๋ค.
๋ฐ๋ผ์ ์ด๋ฌํ ํ๋ฆ์ ๋ง์ถฐ ์ฝ๋๋ฅผ ์์ฑํด๋ณด๋ฉด df1.loc[0, 'Name'] ์ผ๋ก ์จ์ฃผ๋ฉด ๋๋ค. ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํด๋ณด๋ฉด ์ฐ๋ฆฌ๊ฐ ์ํ๋ ํน์ ๊ฐ์ด ์ถ๋ ฅ๋ ๊ฒ์ ์ ์ ์๋ค.
ํ์ด์ฌ ๊ธฐ์ด ๋ฌธ๋ฒ์ ์ ์๊ณ ์๋ ์ฌ๋๋ค์ '์ธ๋ฑ์ฑ์ ํ ์ ์๋ค๋ฉด ํน์ ์ฌ๋ผ์ด์ฑ๋ ํ ์ ์์ง ์์๊น?'๋ผ๋ ์๊ฐ์ ํ ์ ์์ ๊ฒ์ด๋ค. ์ด๋ฒ์๋ ํน์ ํ ํ๋์ ๊ฐ์ด ์๋ ๋ฒ์๋ก ์ง์ ํ์ฌ ํ๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์๋ณด๋๋ก ํ๋ค. (์ฌ๋ผ์ด์ฑ ๊ฐ๋ ๋ค์ ํ์ธ (ํด๋ฆญ))
์ฌ๋ผ์ด์ฑ ๊ฐ๋ ์ loc์ ์ ์ฉํด์ ๋ฐ์ดํฐ ํ๋ ์์ ๊ฐ๋ค์ ๊ฐ์ ธ์๋ณด์. ํน์ ๊ตฌ๊ฐ์ ์ง์ ํ์ง ์๊ณ : ๋ก๋ง ์ ๋ ฅํ๋ค๋ฉด ์ฒ์๋ถํฐ ๋๊น์ง!๋ก ๋ฒ์๊ฐ ์ค์ ๋๋ค. ๋ฐ๋ผ์ df1.loc[ : , : ] ๋ผ๋๊ฒ์ 'df1๋ผ๋ ๋ฐ์ดํฐ ํ๋ ์์์ ์ ์ฒด ํ, ์ ์ฒด ์ด์ ๊ฐ์ ธ์'๋ผ๋ ์๋ฏธ๊ฐ ๋๋ค.
์ฌ๊ธฐ์ ์ด์ ์์ ์ด ๊ฐ์ ธ์ค๊ณ ์ถ์ ํน์ ๊ตฌ๊ฐ์ ์ง์ ํด์ฃผ๋ฉด ๋๋๋ฐ,
์ฒซ ๋ฒ์งธ๋ก, 'Pclass'๋ผ๋ ํน์ ์นผ๋ผ๋ง ๊ฐ์ ธ์๋ณด์.
์ฌ์ค ์ด ๊ฒฝ์ฐ๋ ๊ตณ์ด loc๋ฅผ ์ฌ์ฉํ์ง ์์๋ ์๋์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ํจ์ฌ ์ฝ๊ฒ ํน์ ์ด์ ๊ฐ์ ธ์ฌ ์ ์๋ค.
๊ทธ๋๋ ํ๋ฒ loc๋ฅผ ์ฌ์ฉํด๋ณธ๋ค๋ฉด, df1.loc[:, 'Pclass] ๋ก ์์ฑํ์ฌ ์ ์ฒด ํ์ ์ถ์ถํ๊ณ ์ด์ ์ ๋ ฅํ๋ ์๋ฆฌ์ ๋ด๊ฐ ๊ฐ์ ธ์ค๊ณ ์ถ์ ํน์ ์นผ๋ผ๋ช ์ ์ ์ด์ฃผ๋ฉด ๋๋ค.
์ด๋ฒ์๋ ๊ตฌ๊ฐ์ ์กฐ๊ธ ๋ ๋ํ์ ์์ ๋นจ๊ฐ ๋ฐ์ค ์์ ์๋ ๊ฐ๋ค์ ํ ๋ฒ์ ๊ฐ์ ธ์๋ณด์. ํด๋น ๊ฐ๋ค์ ํ์ ์ธ๋ฑ์ค ์ด๋ฆ์ด 0์ธ๊ฒ๋ถํฐ 4๊น์ง, 'Passengerld'๋ถํฐ 'Age'์นผ๋ผ๊น์ง๋ก ๋ฒ์๋ฅผ ์ง์ ํ ์ ์๋ค.
๋ฐ๋ผ์ ์์ ์ฝ๋์ฒ๋ผ df1.loc[ :4, :'Age'] ๋ก ์์ฑํด์ฃผ๋ฉด ๋ด๊ฐ ์ํ๋ ๋ฒ์์ ์๋ ๊ฐ๋ค์ ํ ๋ฒ์ ๊ฐ์ ธ์ฌ ์ ์๋ค. (๋ค์ ํ๋ฒ ์ง๊ณ ๋์ด๊ฐ์๋ฉด ์ฌ๋ผ์ด์ฑ์์ : ์ ์์ ์๋ฌด๊ฒ๋ ์ ์ฐ๋ฉด ์ฒซ๋ฒ์งธ ๊ฐ๋ถํฐ ๋ผ๋ ์๋ฏธ์ด๊ณ , :์ ๋ค์ ์๋ฌด๊ฒ๋ ์์ฐ๋ฉด ๋๊น์ง ๋ผ๋ ์๋ฏธ๊ฐ ๋๋ค. ๋ฐ๋ผ์ ์ฒ์์ ํ ๋๋ ์ด๋ถํฐ ๋ฒ์๋ฅผ ์ง์ ํ๋ ๊ฒฝ์ฐ, ์์ ์ฝ๋์ฒ๋ผ :์์ ์๋ฌด๋ฐ ๊ฐ์ ์ฐ์ง ์์๋ ๋๋ค.)
๋งจ ์ฒ์ ์ธ๊ธํ๋ฏ, loc๋ ๋ถ๋ฆฐ(boolean)์ผ๋ก ํน์ ๊ฐ์ ์ถ์ถํด์ฌ ์ ์๋ค.(๋ถ ์๋ฃํ ๋ค์ ํ์ธ (ํด๋ฆญ)). ๋ฐ๋ผ์ ์ด๋ฒ์๋ ์ ์ฒด ๋ฐ์ดํฐ ํ๋ ์์์ ํน์ ํ ์กฐ๊ฑด์ ๋ง์กฑ์ํค๋ ๊ฐ๋ค๋ง ์ถ์ถํด์ค๋๋ก ํ์.
'Pclass'๋ผ๋ ์นผ๋ผ์์ ๊ฐ์ด 3์ธ ๊ฐ๋ค๋ง ์ถ์ถํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น?
์์ ๊ฐ์ด ๋ด๊ฐ ์ถ์ถํ๊ณ ์ ํ๋ ํน์ ํ ์กฐ๊ฑด์ ํ๋์ ๋ณ์๋ก ์ ์ธํ ๋ค์, ๊ทธ ๋ณ์๋ฅผ loc[ ]์ ๋ฃ์ด์ค๋ค. ๊ฒฐ๊ณผ๋ฅผ ํ์ธํด๋ณด๋ฉด 'Pclass'์์ ๊ฐ์ด 3์ธ ๊ฒฝ์ฐ๋ง ์ถ๋ ฅ๋จ์ ์ ์ ์๋ค.
ํด๋น ์กฐ๊ฑด์ [ ]์์ ์ง์ ์ ์ด์ฃผ์ด๋ ๋์ผํ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋๋ค.
์ด๋ฌํ ๋ฐฉ๋ฒ์ ์ด์ฉํ๋ฉด ๋ด๊ฐ ์ํ๋ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ๋ฐ์ดํฐ๋ง ๋ฝ์๋ผ ์ ์๋๋ฐ,
loc[ ]์์ ์ํ๋ ์กฐ๊ฑด์์ ์์ฑํ๋ฉด ๋๋ค. ์์ ์ฝ๋๋ฅผ ๋ณด๋ฉด df1.loc[(df1['Pclass']==3) | (df1['Age]>=30)] ์ผ๋ก, df1์ 'Pclass'๋ผ๋ ์นผ๋ผ์์ ๊ฐ์ด 3์ด๊ฑฐ๋ ( | ๋ฅผ ์ฌ์ฉํ๋ฉด '~์ด๊ฑฐ๋'๋ผ๋ ์๋ฏธ, & ๋ฅผ ์ฌ์ฉํ๋ฉด '๊ทธ๋ฆฌ๊ณ '๋ผ๋ ์๋ฏธ) df1์ 'Age'์นผ๋ผ์ ๊ฐ์ด 30๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ๊ฒฝ์ฐ์ ํด๋น๋๋ ๊ฐ๋ค๋ง ์ถ๋ ฅํ๋ผ๋ ์๋ฏธ๊ฐ ๋๋ค.
# Reference