🐼 판다스/Pandas 함수

🐼 Pandas 03. DataFrame 행에 접근하기

nyamin9 2023. 1. 13. 20:21

모바일은 화면을 돌려 가로화면으로 보시는 게 읽으시기 편할 수 있습니다. 돌려서 보시는 걸 추천드릴게요!!

 

 


 

📝 목차


1.1. loc / iloc 함수


1.2. 값 변경하기


1.3. 행 삭제하기


1.4. 조건에 맞는 행 가져오기


1.5. 포함관계 파악하기


1.6. 행 추출하기


🐼 이번 포스팅과 다음 포스팅을 통해 데이터프레임의 행/열에 접근하는 방법에 대해 알아봅시다.


🐼 시작 전에 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

 


 

🐼 이렇게 간단한 데이터를 통해 행에 접근하는 법을 알아보았습니다.


🐼 데이터를 전처리하는 과정에서 행을 중심으로 하는 경우는 적지만, 알아두는 것도 나쁘지 않다고 생각합니다!!