최근 머신러닝 공부를 수행하면서 파이썬에서 데이터프레임을 다룰 일이 많이 생겼습니다. 해서, 자주 사용하는 것이 Pandas DataFrame입니다. 주로 판다스를 사용해서 특정 행이나 특정 열을 추출하는 방법이 많이 사용되는데, 이번 포스팅에서는 Pandas loc 함수를 사용한 특정 열, 행 추출 방법에 대해 여러분과 공유하고자 합니다.
Contents
Pandas DataFrame 선언
가장 먼저 예제를 풀기 위한 데이터프레임을 선언하도록 하겠습니다. 많은 방법이 있지만, 개인적으로는 아래와 같은 방법이 가장 편하고 가독성이 좋다고 생각합니다. 데이터와 인덱스, 컬럼은 알아보기 쉽도록 표기했습니다.
df = pd.DataFrame([[1,2,3], [4,5,6], [7,8,9]],
index=['index1','index2','index3'],
columns=['columns1','columns2','columns3'])
특정 열 or 행 추출 방법
여러가지 방법을 통해 데이터프레임의 행과 열을 추출할 수 있습니다.
특정 행, 열 단일 추출
데이터 프레임의 특정 행, 열을 추출한 결과로 데이터프레임으로 추출되는 것을 원하는 분이 많으리라 생각합니다. 해당 방법으로는 아래와 같이 loc 함수를 쓰고 해당 행, 열 이름을 대괄호로 묶어주면 데이터프레임 형태로 특정 행, 열의 추출이 가능합니다.
loc_ex = df.loc[ ['index2'], ['columns3'] ]
특정 행, 열 복수 추출
위와 같은 방법으로 복수 행, 열을 추출해보겠습니다. 매우 직관적인 방법으로써 콤마(,)로 구분해서 해당 행, 열의 이름을 써주시면 됩니다.
loc_ex = df.loc[ ['index1','index3'], ['columns1','columns3'] ]
특정 행, 열 범위 추출
범위 추출 역시 위와 같은 형태로 추출할 수 있다면 좋겠지만 세상이 그렇게 호락호락하지 않습니다. 대괄호를 없앤 상태로 원하는 행, 열의 범위를 입력해서 해당 범위의 행, 열을 추출할 수 있습니다.
loc_ex = df.loc['index1':'index3', 'columns2':'columns3']
추출 행, 열 Numpy Array 변환
이렇게 추출된 데이터프레임을 머신러닝에 사용하기 위해서는 보통 넘파이 Array 형태로 변환해줘야합니다. 세상 간단한 코드로 데이터프레임을 Numpy Array로 변환할 수 있습니다.
loc_ex = df.loc['index1':'index3', 'columns2':'columns3'].values
마치며
이번 포스팅에서는 파이썬 판다스 패키지를 사용한 특정 행, 열 추출 방법에 대해 알아보았습니다. 많은 분들이 알고 계시겠지만 저는 위와 같은 포맷이 가장 편하다고 생각하고 사용 중에 있습니다. 위 코드 참고하시고 발전이 있으셨으면 좋겠습니다.
댓글