👩‍💻 Develope/Python

[Pandas] loc, iloc, at, iat 메소드 비교

heywantodo 2023. 12. 28. 10:13
728x90
반응형

[Pandas] loc, iloc, at, iat 메소드 비교

pandas dataframe에서 임의의 위치 데이터를 추출하거나 변경하는 경우에

loc, iloc, at, iat을 사용할 수 있다.

  loc iloc at iat
위치 지정 X O X O
라벨명 지정 O X O X
여러개의 요소 지정 O O X X
슬라이스 표기 O O X X

 

샘플 데이터 프레임을 먼저 생성해준다.

import pandas as pd

import names
from random import *

age = [randint(16, 19) for i in range(0, 101)]
gender = [choice(["male", "female"]) for i in range(0, 101)]
name = [names.get_first_name(gender=g) for g in gender]
cl = [choice(['A','B','C','D']) for i in range(0, 101)]
math = [randint(50, 100) for i in range(0, 101)]
english = [randint(50, 100) for i in range(0, 101)]

dic = {"age":age, "gender":gender, "name":name, "class":cl, "math":math, "english":english}
df = pd.DataFrame(dic)

 

loc

특정 범위의 데이터를 인덱싱할 때 사용된다.

나이가 18살인 name을 추출해보자.

df.loc[df['age'] == 18, 'name']

 

값 지정을 해줄 경우 나이가 18살인 name값을 일괄 변경 할 수 있다.

df.loc[df['age'] == 18, 'name'] = 'harry'
df.loc[df['age'] == 18, 'name']

 

iloc

n번째 행부터 n번째 행까지, n번째 컬럼부터 n번째 컬럼까지의 데이터를 인덱싱할 때 사용된다.

df.iloc[1:3, 0:4]

 

 

at

하나의 데이터를 인덱싱할 때 사용된다. 인덱스 값을 이용해서 가져올 수 있다

index가 5인 학생의 name을 다음과 같이 확인 할 수 있다.

df.at[5, 'name']

 

iat

n번째 행, n번째 컬럼의 값을 알고싶을 때 사용된다.

df.iat[4, 2]

 

참고

https://engineer-mole.tistory.com/216

728x90
반응형