brunch

You can make anything
by writing

C.S.Lewis

by 브래드 Nov 23. 2022

파이썬으로 데이터 전처리하기(4)

feat. pandas에서 데이터 슬라이싱 하기

안녕하세요, 브래드입니다.


오늘은 파이썬으로 데이터 전처리하기 네 번째 시간으로 pandas에서 데이터 슬라이싱하는 작업을 함께 공부해보아요.



데이터 슬라이싱

데이터 가져오기

pandas로 데이터 슬라이싱을 하기 위하여 pandas를 import 하고 예시 데이터를 가져온 모습입니다.




행(row) 선택하기

데이터 슬라이싱의 일환으로 행을 하나 가져오거나 행을 여러 개 가져올 수 있습니다.


행을 하나 가져올 때는 df['행 시작 인덱스':'행 시작 인덱스+1']을 하여 데이터를 가져옵니다. 

행을 여러 개 가져올 때는 df['행 시작 인덱스:행 끝 인덱스']를 하여 원하는 데이터를 불러올 수 있습니다.


위의 예시로 나와있는 df[8:]은 8 이상인 값을 가져오는 것을 알 수 있습니다.




열(column) 선택하기

행에 이어서 열을 선택하여 가져오는 방법을 알아볼게요.


열을 하나 가져오는 방법은 df['칼럼명']을 입력하여 원하는 열을 가져올 수 있습니다. 위의 예시에서는 df['item_name'}을 통해 열 하나를 가져온 모습입니다.


또한, 대괄호를 중첩하고 칼럼명을 여러 개 입력하여 열을 여러 개 가져올 수 있습니다.


추가로 df.columns를 통해 어떠한 열이 존재하는 지를 나열하여 확인할 수 있습니다.




loc

다음으로 lociloc을 통해 데이터를 더욱 편하게 조회하는 방법을 알아볼게요.


loc과 iloc을 활용하여 pandas 내에서 데이터 조작을 쉽게 진행할 수 있으며, 조건문을 기본적으로 활용할 수 있습니다. 따라서 SQL문과 같이 원하는 조건에 맞는 데이터를 추출할 수 있습니다.


loc과 iloc의 기본형은 다음과 같습니다.

df.loc ['행 슬라이싱 영역' , '열 슬라이싱 영역']
df.iloc ['행 슬라이싱 영역' , '열 슬라이싱 영역']


loc은 행과 열의 데이터를 조회할 때 특정 레이블(lable)을 통해 접근하는 방법입니다. 레이블은 인덱스와 같같은 의미로 생각할 수 있습니다.


위의 예시에서 레이블은 0,1,2 ... 값들이며 df.loc[0]을 통해 0의 레이블 값을 출력한 모습입니다. 여기서 주의할 점은 0번째라 가져온 것이 아니라 레이블이 0 값이기 때문에 가져온 것입니다. 즉, 만약 레이블이 문자이면 df.loc['문자']를 통해 값을 가져올 수 있습니다. 




loc (조건문을 사용하여 행 조회)

앞서 언급한 대로 SQL과 같이 loc 내에서도 조건문을 사용하여 우리가 원하는 행을 조회할 수 있습니다. 


위의 예시에서는 item_name이 기본 가디건인 값을 가져와 달라는 식입니다. 또한 마찬가지로 비교 연산자를 사용하여 우리가 원하는 데이터를 구할 수 있습니다.




loc(특정 열 조회)

loc로 특정 열을 조회할 수 있습니다. 위의 예시에서는 item_name을 조회한 모습입니다.


행에는 ':'을 입력하여 조건 없이 모든 값을 가져온 모습입니다.




loc(행, 열 조건문 사용)

loc 내애서 행과 열 둘 다 조건을 적용하여 데이터를 가져올 수 있습니다.




iloc(특정 행 조회)

loc에 이어서 iloc에 대해 알아보겠습니다.


iloc은 행과 열의 데이터를 조회할 때 숫자 인덱스를 통해 데이터에 접근하는 방법입니다. 즉, 인덱스 값이 숫자이던 문자이던 0번째부터 인덱스가 매겨져 있다고 생각할 수 있습니다.


예시에서는 iloc을 사용하여 각각 인덱스가 1인 값, 인덱스가 1,5,7인 값, 인덱스가 3 이상 6 미만인 값을 가져온 모습입니다.




iloc(특정 열 조회)

iloc에서도 열 조회는 마찬가지로 같은 형식으로 나타낼 수 있습니다.


위의 예시는 각각 인덱스가 0인 열 조회, 인덱스가 0 이상 2 미만인 열 조회를 한 모습입니다.





Boolean Indexing / isin()

Boolean Indexing

Boolean Indexing은 참/거짓 여부를 판단하여 특정 조건이 맞는 데이터를 추출합니다.


데이터 프레임에서 category_id가 3보다 크냐는 식을 작성했을 때는 데이터 프레임 내에서 참 거짓이냐만을 출력합니다.


해당 Boolean 값을 df.loc[]에 넣어주게 되면 True에 해당하는 데이터만 추출할 수 있습니다.




isin()

isin은 정한 리스트 안에 있는 값들만 가져오고 싶을 때 사용할 수 있습니다.


가상으로 group_name을 2로 지정하고, category_id 내에서 isin() 안에 group_name을 삽입하여 'category_id 안에 group_name이라고 지정한 2가 있으면 True를 반환해줘'라는 식을 완성할 수 있습니다.


해당 식을 df.loc[]안에 넣으면 True를 반환한 값들을 볼 수 있습니다.





지금까지 파이썬으로 데이터 전처리하기 4번째 시간으로 pandas에서 데이터 슬라이싱 하는 방법을 함께 알아보았습니다.


다음 시간에는 pandas에서 통계값 계산과 정렬에 관해 함께 공부해보아요.


브래드였습니다. 감사합니다.

매거진의 이전글 파이썬으로 데이터 전처리하기(3)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari