feat. pandas에서 데이터 슬라이싱 하기
안녕하세요, 브래드입니다.
오늘은 파이썬으로 데이터 전처리하기 네 번째 시간으로 pandas에서 데이터 슬라이싱하는 작업을 함께 공부해보아요.
pandas로 데이터 슬라이싱을 하기 위하여 pandas를 import 하고 예시 데이터를 가져온 모습입니다.
데이터 슬라이싱의 일환으로 행을 하나 가져오거나 행을 여러 개 가져올 수 있습니다.
행을 하나 가져올 때는 df['행 시작 인덱스':'행 시작 인덱스+1']을 하여 데이터를 가져옵니다.
행을 여러 개 가져올 때는 df['행 시작 인덱스:행 끝 인덱스']를 하여 원하는 데이터를 불러올 수 있습니다.
위의 예시로 나와있는 df[8:]은 8 이상인 값을 가져오는 것을 알 수 있습니다.
행에 이어서 열을 선택하여 가져오는 방법을 알아볼게요.
열을 하나 가져오는 방법은 df['칼럼명']을 입력하여 원하는 열을 가져올 수 있습니다. 위의 예시에서는 df['item_name'}을 통해 열 하나를 가져온 모습입니다.
또한, 대괄호를 중첩하고 칼럼명을 여러 개 입력하여 열을 여러 개 가져올 수 있습니다.
추가로 df.columns를 통해 어떠한 열이 존재하는 지를 나열하여 확인할 수 있습니다.
다음으로 loc과 iloc을 통해 데이터를 더욱 편하게 조회하는 방법을 알아볼게요.
loc과 iloc을 활용하여 pandas 내에서 데이터 조작을 쉽게 진행할 수 있으며, 조건문을 기본적으로 활용할 수 있습니다. 따라서 SQL문과 같이 원하는 조건에 맞는 데이터를 추출할 수 있습니다.
loc과 iloc의 기본형은 다음과 같습니다.
df.loc ['행 슬라이싱 영역' , '열 슬라이싱 영역']
df.iloc ['행 슬라이싱 영역' , '열 슬라이싱 영역']
loc은 행과 열의 데이터를 조회할 때 특정 레이블(lable)을 통해 접근하는 방법입니다. 레이블은 인덱스와 같같은 의미로 생각할 수 있습니다.
위의 예시에서 레이블은 0,1,2 ... 값들이며 df.loc[0]을 통해 0의 레이블 값을 출력한 모습입니다. 여기서 주의할 점은 0번째라 가져온 것이 아니라 레이블이 0 값이기 때문에 가져온 것입니다. 즉, 만약 레이블이 문자이면 df.loc['문자']를 통해 값을 가져올 수 있습니다.
앞서 언급한 대로 SQL과 같이 loc 내에서도 조건문을 사용하여 우리가 원하는 행을 조회할 수 있습니다.
위의 예시에서는 item_name이 기본 가디건인 값을 가져와 달라는 식입니다. 또한 마찬가지로 비교 연산자를 사용하여 우리가 원하는 데이터를 구할 수 있습니다.
loc로 특정 열을 조회할 수 있습니다. 위의 예시에서는 item_name을 조회한 모습입니다.
행에는 ':'을 입력하여 조건 없이 모든 값을 가져온 모습입니다.
loc 내애서 행과 열 둘 다 조건을 적용하여 데이터를 가져올 수 있습니다.
loc에 이어서 iloc에 대해 알아보겠습니다.
iloc은 행과 열의 데이터를 조회할 때 숫자 인덱스를 통해 데이터에 접근하는 방법입니다. 즉, 인덱스 값이 숫자이던 문자이던 0번째부터 인덱스가 매겨져 있다고 생각할 수 있습니다.
예시에서는 iloc을 사용하여 각각 인덱스가 1인 값, 인덱스가 1,5,7인 값, 인덱스가 3 이상 6 미만인 값을 가져온 모습입니다.
iloc에서도 열 조회는 마찬가지로 같은 형식으로 나타낼 수 있습니다.
위의 예시는 각각 인덱스가 0인 열 조회, 인덱스가 0 이상 2 미만인 열 조회를 한 모습입니다.
Boolean Indexing은 참/거짓 여부를 판단하여 특정 조건이 맞는 데이터를 추출합니다.
데이터 프레임에서 category_id가 3보다 크냐는 식을 작성했을 때는 데이터 프레임 내에서 참 거짓이냐만을 출력합니다.
해당 Boolean 값을 df.loc[]에 넣어주게 되면 True에 해당하는 데이터만 추출할 수 있습니다.
isin은 정한 리스트 안에 있는 값들만 가져오고 싶을 때 사용할 수 있습니다.
가상으로 group_name을 2로 지정하고, category_id 내에서 isin() 안에 group_name을 삽입하여 'category_id 안에 group_name이라고 지정한 2가 있으면 True를 반환해줘'라는 식을 완성할 수 있습니다.
해당 식을 df.loc[]안에 넣으면 True를 반환한 값들을 볼 수 있습니다.
지금까지 파이썬으로 데이터 전처리하기 4번째 시간으로 pandas에서 데이터 슬라이싱 하는 방법을 함께 알아보았습니다.
다음 시간에는 pandas에서 통계값 계산과 정렬에 관해 함께 공부해보아요.
브래드였습니다. 감사합니다.