🌡 κ³΅λΆ€ν•˜λ‹€ λ³΄λ‹ˆ loc / iloc ν•¨μˆ˜κ°€ 생각보닀 λ‹€μ–‘ν•œ κ²½μš°μ— μ‚¬μš©κ°€λŠ₯ν•˜λ‹€λŠ” 것을 μ•Œκ²Œλ˜μ—ˆλ‹€.
🌡 μ΄λ²ˆμ— 정리해두면 λ‚˜μ€‘μ— μ „μ²˜λ¦¬λ₯Ό ν• λ•Œ μ’€ 더 μˆ˜μ›”ν•˜κ²Œ ν•  수 μžˆμ„κ±° κ°™μ•„μ„œ 적어둔닀.

🌡 λ¨Όμ € μ‚¬μš©ν•  λ°μ΄ν„°ν”„λ ˆμž„μ„ ν•˜λ‚˜ λ§Œλ“€μž.

import pandas as pd

df = pd.DataFrame({'κ΅­μ–΄':[90, 85, 88],
                   'μˆ˜ν•™':[92, 88, 96],
                   'κ³Όν•™':[85, 92, 90]},
                   index = ['A','B','C'])
df
>>
        κ΅­μ–΄	μˆ˜ν•™	κ³Όν•™
A	90	92	85
B	85	88	92
C	88	96	90

1. 행에 μ ‘κ·Ό

🌡 loc( ) : 인덱슀의 이름을 인수둜 λ°›μŒ

df.loc['A']
>>
κ΅­μ–΄    90
μˆ˜ν•™    92
κ³Όν•™    85
Name: A, dtype: int64

🌡 iloc( ) : 인덱슀의 μˆœμ„œλ₯Ό 인수둜 λ°›μŒ(0,1,2…)

df.iloc[2]
>>
κ΅­μ–΄    88
μˆ˜ν•™    96
κ³Όν•™    90
Name: C, dtype: int64

2. ν–‰ / 열에 μ ‘κ·Ό

2.1. loc


🌡 loc( ) ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” κ²½μš°μ—λŠ” κΌ­ ν–‰ / μ—΄μ˜ 이름을 인수둜 λ„£μ–΄μ•Ό ν•œλ‹€!!

🌡 A : B ν˜•νƒœλ‘œ μŠ¬λΌμ΄μ‹± ν• λ•Œ A,Bκ°€ characterλ©΄ B도 ν¬ν•¨λœλ‹€.

df.loc[:, 'μˆ˜ν•™':'κ³Όν•™']
>>
        μˆ˜ν•™	κ³Όν•™
A	92	85
B	88	92
C	96	90
df.loc['A':'B', 'κ΅­μ–΄':'μˆ˜ν•™']
>>
        κ΅­μ–΄	μˆ˜ν•™
A	90	92
B	85	88

μ΄λ ‡κ²Œ μ›ν•˜λŠ” 뢀뢄듀을 μŠ¬λΌμ΄μ‹±ν•΄μ„œ κ°€μ Έμ˜¬μˆ˜ 있고,

df.loc[['A','C'], ['κ΅­μ–΄','κ³Όν•™']]
>>
        κ΅­μ–΄	κ³Όν•™
A	90	85
C	88	90

μ›ν•˜λŠ” λΆ€λΆ„μ˜ 인덱슀 / μ—΄ 이름을 μž…λ ₯ν•˜μ—¬ κ°€μ Έμ˜¬μˆ˜λ„ μžˆλ‹€.

🌡 df.loc[ df [column] ~쑰건, μ—΄ ]

df.loc[df['μˆ˜ν•™'] >= 90, ['μˆ˜ν•™','κ³Όν•™']]
>>
	μˆ˜ν•™	κ³Όν•™
A	92	85
C	96	90
df.loc[df['μˆ˜ν•™'] >= 90, 'κ΅­μ–΄':'μˆ˜ν•™']
>>
        κ΅­μ–΄	μˆ˜ν•™
A	90	92
C	88	96

ν–‰ 뢀뢄에 쑰건을 μž…λ ₯ν•΄μ„œ μ›ν•˜λŠ” 뢀뢄을 필터링할 μˆ˜λ„ μžˆλ‹€.

2.2. iloc


🌡 iloc( ) ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” κ²½μš°μ—λŠ” κΌ­ ν–‰ / μ—΄μ˜ μˆœμ„œλ₯Ό 인수둜 λ„£μ–΄μ•Ό ν•œλ‹€!!

🌡 A:B ν˜•νƒœλ‘œ μŠ¬λΌμ΄μ‹± ν• λ•Œ A,Bκ°€ numeric이면 BλŠ” μ œμ™Έλœλ‹€.

df.iloc[:, [1,2]]
>>
        μˆ˜ν•™	κ³Όν•™
A	92	85
B	88	92
C	96	90
df.iloc[:2, :2]
>>
        κ΅­μ–΄	μˆ˜ν•™
A	90	92
B	85	88

μ΄λ ‡κ²Œ μ›ν•˜λŠ” 뢀뢄듀을 μŠ¬λΌμ΄μ‹±ν•΄μ„œ κ°€μ Έμ˜¬μˆ˜ 있고,

df.iloc[[0,2], [0,2]]
>>
        κ΅­μ–΄	κ³Όν•™
A	90	85
C	88	90

μ›ν•˜λŠ” λΆ€λΆ„μ˜ 인덱슀/ μ—΄ μˆœμ„œλ₯Ό μž…λ ₯ν•˜μ—¬ κ°€μ Έμ˜¬μˆ˜λ„ μžˆλ‹€.

πŸ“ loc / iloc ν•¨μˆ˜μ— 각각 μ–΄λ–€ μΈμˆ˜κ°€ λ“€μ–΄κ°€μ•Ό ν•˜λŠ”μ§€, μŠ¬λΌμ΄μ‹±μ€ μ–΄λ–»κ²Œ λ˜λŠ”μ§€ μ •ν™•νžˆ μ•„λŠ” 것이 μ€‘μš”ν•΄ 보인닀.

πŸ“ μ „μ²˜λ¦¬ κ³Όμ •μ—μ„œ 행에 μ ‘κ·Όν•˜λŠ” κ²½μš°λŠ” κ·Έλ ‡κ²Œ λ§Žμ§€ μ•ŠκΈ° λ•Œλ¬Έμ— loc ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•œ 적은 λ³„λ‘œ μ—†λŠ” 것 κ°™λ‹€. ν•˜μ§€λ§Œ μœ„μ˜ μ˜ˆμ‹œμ²˜λŸΌ ν–‰/열에 λ™μ‹œμ— 접근이 κ°€λŠ₯ν•˜κ³  쑰건을 ν†΅ν•΄μ„œ 필터링도 ν•  수 있기 λ•Œλ¬Έμ— μ œλŒ€λ‘œ μ‚¬μš©ν•˜λ©΄ νŽΈν•΄μ§ˆ κ±° κ°™λ‹€!!

Leave a comment