250x250
Link
๋‚˜์˜ GitHub Contribution ๊ทธ๋ž˜ํ”„
Loading data ...
Notice
Recent Posts
Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Data Science LAB

[Python] loc/iloc ์ฐจ์ด์  ๋ณธ๋ฌธ

๐Ÿ Python/Pandas

[Python] loc/iloc ์ฐจ์ด์ 

ใ…… ใ…œ ใ…” ใ…‡ 2022. 3. 10. 21:02
728x90

Pandas๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํƒํ•  ๋•Œ, iloc๊ณผ loc์„ ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ๊ฐ€๋” ํ—ท๊ฐˆ๋ ค์„œ ๋‘ ์—ฐ์‚ฐ์ž์— ๋Œ€ํ•ด ํฌ์ŠคํŒ… ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค!

 

 

์œ„์น˜ ๊ธฐ๋ฐ˜ ์ธ๋ฑ์‹ฑ

์œ„์น˜ ๊ธฐ๋ฐ˜ ์ธ๋ฑ์‹ฑ์€ 0์„ ์ถœ๋ฐœ์ ์œผ๋กœ ํ•˜๋Š” ๊ฐ€๋กœ, ์„ธ๋กœ์ถ• ์ขŒํ‘œ ๊ธฐ๋ฐ˜์˜ ํ–‰๊ณผ ์—ด์œ„์น˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์ •ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํ–‰, ์—ด ๊ฐ’์œผ๋กœ ์ •์ˆ˜๊ฐ€ ์ž…๋ ฅ๋˜๋ฉฐ, iloc[] ์—ฐ์‚ฐ์ž๋Š” ์œ„์น˜ ๊ธฐ๋ฐ˜ ์ธ๋ฑ์‹ฑ์— ํ•ด๋‹นํ•œ๋‹ค. 

iloc[]์€ ํ–‰๊ณผ ์—ด ๊ฐ’์œผ๋กœ integer ๋˜๋Š” integerํ˜•์˜ ์Šฌ๋ผ์ด์‹ฑ, ํŒฌ์‹œ ๋ฆฌ์ŠคํŠธ ๊ฐ’์„ ์ž…๋ ฅํ•ด์ค˜์•ผ ํ•œ๋‹ค. 

 

๋จผ์ €, ์—ฐ์Šต์šฉ์œผ๋กœ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ํ•˜๋‚˜ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค. 

import pandas as pd
data = {'Name' : ['Red','Blue','Yellow','Green'],
       'Year' : [2020,2021,2022,2023],
       'Gender' : ['Male','Female','Male','Male']}
df = pd.DataFrame(data,index=['one','two','three','four'])
df

 

๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ธ๋ฑ์‹ฑ์€ ๋ฌธ์ž๋กœ ์ง€์ •ํ•ด์ฃผ์—ˆ๋‹ค. 

 

 

df.iloc[0,0]

[0,0]์„ ์ž…๋ ฅํ•˜๋ฉด ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์˜ ์ฒซ ๋ฒˆ์งธ ํ–‰, ์ฒซ ๋ฒˆ์งธ ์—ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•œ๋‹ค. 

 

df.iloc[0,'Name']

์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ๋ช…์นญ์„ ์ž…๋ ฅํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 

 

 

df_reset = df.reset_index()
df_reset = df_reset.rename(columns={'index':'old_index'})
df_reset

๋จผ์ €, ๊ธฐ์กด์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฆฌ์…‹ํ•˜๊ณ , ์ง€์ •ํ•œ ์ธ๋ฑ์Šค๋Š” ํ•˜๋‚˜์˜ ์ปฌ๋Ÿผ์œผ๋กœ ์ƒ์„ฑํ•œ๋‹ค.

 

 

df.iloc[0,1]

์ฒซ ๋ฒˆ์งธํ–‰(0)์˜ ๋‘๋ฒˆ ์งธ ์—ด(1)์˜ ์œ„์น˜์— ์žˆ๋Š” ๊ฐ’์ธ 2020์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

 

 

 

 

 

 

 

๋ช…์นญ ๊ธฐ๋ฐ˜ ์ธ๋ฑ์‹ฑ

๋ช…์นญ (Label) ๊ธฐ๋ฐ˜ ์ธ๋ฑ์‹ฑ์€ ์ปฌ๋Ÿผ์˜ ๋ช…์นญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๋ช…์นญ์œผ๋กœ ์—ด์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, loc[] ์—ฐ์‚ฐ์ž๋Š” ๋ช…์นญ ๊ธฐ๋ฐ˜ ์ธ๋ฑ์‹ฑ์— ํ•ด๋‹นํ•œ๋‹ค. 

df.loc['one','Name']

์ธ๋ฑ์Šค ๊ฐ’์ด 'one'์ธ ํ–‰์˜ ์ปฌ๋Ÿผ๋ช…์ด 'Name'์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•œ๋‹ค. 

 

df.loc[1,'Name']

์ธ๋ฑ์Šค ๊ฐ’์— 1์„ ๋„ฃ์œผ๋ฉด, ์ธ๋ฑ์Šค ๊ฐ’์ด 1์ธ ํ–‰์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค. 

 

 

df_reset = df.reset_index()
df_reset = df_reset.rename(columns={'index':'old_index'})
df_reset

์ธ๋ฑ์Šค ๊ฐ’์„ ์„ค์ •ํ•˜์ง€ ์•Š์•˜์„ ๋•Œ์ฒ˜๋Ÿผ ๋ฆฌ์…‹์„ ํ•ด์ค€ ๋’ค(0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ˆซ์ž),

 

 

df_reset.loc[0,'Name']

์ธ๋ฑ์Šค ๊ฐ’์— 0์„ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ถœ๋ ฅ๋œ๋‹ค. 

 

 

df_reset.loc[0:1,'Name']

loc[0:1]์„ ์ ์šฉํ•˜๋ฉด, 2๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค. 

 

 

df_reset.iloc[0:1,1]

iloc[0:1]์„ ์ ์šฉํ•˜๋ฉด, 1๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค. 

 

๐Ÿ“์ผ๋ฐ˜์ ์œผ๋กœ ์Šฌ๋ผ์ด์‹ฑ์„ '์‹œ์ž‘๊ฐ’:์ข…๋ฃŒ๊ฐ’'์œผ๋กœ ์ ์šฉํ•˜๋ฉด, ์‹œ์ž‘๊ฐ’~์ข…๋ฃŒ ๊ฐ’-1๊นŒ์ง€์˜ ๋ฒ”์œ„๋ฅผ ์˜๋ฏธํ•˜์ง€๋งŒ, loc[]์— ์Šฌ๋ผ์ด์‹ฑ ๊ธฐํ˜ธ๋ฅผ ์ ์šฉํ•˜๋ฉด ์ข…๋ฃŒ๊ฐ’๊นŒ์ง€ ํฌํ•จํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. 

728x90
Comments