Python/Pandas

[Pandas] 파이썬 데이터프레임 특정 열 추출, 행 추출(1개, 여러 개)

jimmy_AI 2022. 4. 26. 22:31
반응형

파이썬 판다스 원하는 열/행 가져오기 방법 간단 정리

파이썬 pandas 모듈을 이용하여 데이터프레임에서 원하는 1개의 열/행을 가져오는 방법과

여러 개의 column/row들을 동시에 추출하는 법에 대해서 간략하게 정리해보겠습니다.

 

이해를 돕기 위하여, 아래의 데이터프레임이 df라는 변수에 저장된 상황을 가정하겠습니다.

import pandas as pd

a = {'A' : [1, 2, 3, 4, 5], 'B' : [10, 20, 30, 40, 50], 'C' : [100, 200, 300, 400, 500]}
df = pd.DataFrame(a, index = ['가', '나', '다', '라', '마'])
df

 

 

열 1개 추출하기

대괄호 [] 1개로 해당 column의 이름을 지정해주시면 Series 형태로 열 추출이 됩니다.

df['A']

 

반면, 대괄호 2개로 column 이름을 감싸주면 DataFrame 형태로 추출된 결과가 반환됩니다.

df[['A']]

 

 

열 여러 개 동시에 추출하기

여러 개의 열을 동시에 선택하여 가져오고 싶은 경우에는

원하는 열 이름들의 순서를 적어 대괄호 2개로 감싸주시면 됩니다.

(이 경우에는 대괄호 1개로 묶을 시에는 KeyError 오류가 발생합니다.)

# df['A', 'C'] -> KeyError: ('A', 'C') 발생
df[['A', 'C']]

반응형

행 1개 추출하기

원하는 인덱스의 이름을 열 추출의 경우처럼 대괄호로 묶되, 

loc 함수를 사용해주시면 해당 행만을 선택하여 가져올 수 있습니다.

 

loc 뒤에 대괄호 1개로 해당 row의 이름을 감싸면 Series 형태로 행을 추출합니다.

df.loc['가']

 

데이터프레임 형태로 가져오고 싶다면 열 추출과 마찬가지로 대괄호 2개로 감싸주시면 됩니다.

df.loc[['가']]

 

 

행 여러 개 동시에 추출하기

열 여러 개 추출과 비슷한 방식으로 loc 뒤에 원하는 행들의 인덱스 목록을 대괄호 2개

감싸주시면 여러 행 추출도 가능합니다. 역시 대괄호 1개로만 묶으면 오류가 발생합니다.

# df.loc['가', '다', '마'] -> IndexingError: Too many indexers 발생
df.loc[['가', '다', '마']]

 

 

열과 행 이름을 모두 지정하여 추출하기

행 추출 방법에서 loc 함수의 두 번째 인자로 열 이름 목록을 리스트로 지정해주시면

column과 row 이름을 모두 지정하여 부분 데이터프레임을 가져올 수 있습니다.

df.loc[['가', '다', '마'], ['A', 'C']]

 

 

심화 : 조건 인덱싱, 위치 번호 기반 열/행 추출하기(loc, iloc 함수)

행 추출에서 사용된 loc 함수를 통하여 C열의 값이 250 이상인 행처럼 조건 인덱싱도 가능하며,

2~4번째 행 처럼 위치 기반 추출을 원하는 경우에는 iloc 함수를 사용하시면 가능합니다.

 

이에 대한 상세한 내용은 아래의 글을 참고해주세요.

 

[Pandas] 파이썬 판다스 데이터프레임 인덱싱 총정리(loc, iloc)

안녕하세요. 이번 글에서는 헷갈려보이지만 알고보면 굉장히 간단한 판다스 데이터프레임에서 인덱싱을 하는 방법에 대해서 다루어보려고 합니다. 참고로, 데이터프레임은 행은 인덱스를 기준

jimmy-ai.tistory.com

이상으로 파이썬에서 column 및 row를 추출하는 방법에 대한 글을 마치겠습니다. 감사합니다.