모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!!
📝 목차
🐼 이번 포스팅과 다음 포스팅을 통해 데이터프레임의 행/열에 접근하는 방법에 대해 알아봅시다.
🐼 시작 전에 df 라는 데이터프레임을 하나 만들어둘게요!!
import pandas as pd
df = pd.DataFrame({"국어" : [85, 92, 88, 80],
"수학" : [100, 92, 84, 90],
"영어" : [90, 90, 90, 82]},
index = ["A","B","C","D"])
df
>>
국어 수학 영어
A 85 100 90
B 92 92 90
C 88 84 90
D 80 90 82
1. DataFrame 행에 접근
1.1. loc / iloc 함수
🐼 df.loc[index_name] - 인덱스의 이름을 받아서 행에 접근하는 함수입니다.
df.loc["A"]
>>
국어 85
수학 100
영어 90
Name: A, dtype: int64
🐼 df.iloc[인덱스순서] - 인덱스의 순서를 받아서 행에 접근하는 함수입니다.
df.iloc[1]
>>
국어 92
수학 92
영어 90
Name: B, dtype: int64
행을 가져오는 모습을 확인할 수 있습니다.
1.2. 값 변경하기
🐼 df.loc[ ] / df.iloc[ ] 를 사용해 행에 접근하고 값을 바꿀 수도 있습니다.
df.loc['A'] = [85,100,92]
df
>>
국어 수학 영어
A 85 100 92
B 92 92 90
C 88 84 90
D 80 90 82
A의 영어성적이 90 에서 92로 바뀐것을 확인할 수 있습니다!!
1.3. 행 삭제하기
🐼 drop([index_name]) - 해당 인덱스의 행을 삭제합니다.
df = df.drop(["D"]).copy()
df
>>
국어 수학 영어
A 85 100 90
B 92 92 90
C 88 84 90
D행이 삭제된 것을 확인해 봅시다.
⭐⭐ 1.4. 조건에 맞는 행 가져오기
🐼 데이터를 전처리하는 과정에서 필요한 부분을 가져와야하는 경우가 빈번하기 때문에 자주 사용하는 구문입니다!!
🐼 df[df[column] ~ condition] - 데이터프레임을 반환합니다.
df[df['국어']==92]
>>
국어 수학 영어
B 92 92 90
df[df['영어']==90]
>>
국어 수학 영어
B 92 92 90
C 88 84 90
1.5. 포함관계 파악하기
🐼 isin([list]) - Boolean 반환
ex) df['국어'].isin([92]) : 92가 df['국어'] 에 있는지 확인합니다.
df['국어'].isin([92])
>>
A False
B True
C False
Name: 국어, dtype: bool
1.6. 행 가져오기
🐼 df.sample(frac) - frac 비율만큼 랜덤하게 행을 가져옵니다.
df.sample(frac = 0.5)
>>
국어 수학 영어
A 85 100 90
B 92 92 88
df.sample(frac = 0.5)
>>
국어 수학 영어
C 88 84 90
A 85 100 90
랜덤하게 가져오기 때문에 같은 코드에 대해 리턴값이 다른 것을 확인할 수 있습니다!!
🐼 df.sample(n) - n 개수만큼 랜덤하게 행을 가져옵니다.
df.sample(n = 2)
>>
국어 수학 영어
A 85 100 90
C 88 84 90
df.sample(n = 2)
>>
국어 수학 영어
B 92 92 88
A 85 100 90
sample() 함수도 랜덤하게 가져오기 때문에 같은 코드에 대해 리턴값이 다른 것을 확인할 수 있습니다.
🐼 df.nlargest(n, column) - column 기준 큰 순서대로 n개의 행을 가져옵니다.
df.nlargest(2, '국어')
>>
국어 수학 영어
B 92 92 88
C 88 84 90
🐼 df.smallest(n, column) - column 기준 작은 순서대로 n개의 행을 가져옵니다.
df.nsmallest(2, '수학')
>>
국어 수학 영어
C 88 84 90
B 92 92 88
🐼 이렇게 간단한 데이터를 통해 행에 접근하는 법을 알아보았습니다.
🐼 데이터를 전처리하는 과정에서 행을 중심으로 하는 경우는 적지만, 알아두는 것도 나쁘지 않다고 생각합니다!!
'🐼 판다스 > Pandas 함수' 카테고리의 다른 글
🐼 Pandas 06. pd.to_datetime( ) 함수 (2) | 2023.01.14 |
---|---|
🐼 Pandas 05. loc / iloc 함수 (2) | 2023.01.14 |
🐼 Pandas 04. DataFrame 열에 접근하기 (2) | 2023.01.13 |
🐼 Pandas 02. DataFrame 만들기 (0) | 2023.01.13 |
🐼 Pandas 01. Series (0) | 2023.01.13 |