오랑우탄의 반란

데이터 전처리 & 시각화 (5) Pandas 개념 익히기 3 본문

PYTHON/데이터분석

데이터 전처리 & 시각화 (5) Pandas 개념 익히기 3

5&2 2024. 7. 18. 00:02
반응형


오늘 오랑이는 pandas를 활용한 데이터 전처리에 대해 배울 예정입니다. 

 

지난 포스트에 이어 데이터 병합, 집계, 병렬을 알아보며 Pandas 기초 개념 설명을 마치겠습니다. 

 

 

6 데이터 병합

데이터 병합에는 concat, merge 두 가지 방법이 있습니다. 각각 SQL의 union, join 과 비슷한 쓰임새입니다.

아래 데이터에 대해서 작업하겠습니다.

 

concat

concat로 여러 테이블을 병합할 경우, 기본이 밑으로 이어붙여지는 형식입니다. (axis=0)

이때 주의할 부분은 인덱스가 기존 테이블들의 인덱스 그대로 이어지지 않는 형태로 들어가기 때문에, 마지막에 .reset_index(drop=True) 를 꼭 붙여줘야 한다는 점입니다.

drop=True 를 생략하면 합쳐진 개별 인덱스 칼럼이 남아있다는 사실 잊지 마세요~ 

 

또한 테이블을 이어줬을 때 다른 테이블에 없는 칼람에 대한 경우 NULL 처리 됩니다. 

 

데이터를 가로로 연결하고 싶은 경우 axis=1 이라는 값을 주면 됩니다. 

 

 

merge

이번에는 merge 사용해 보겠습니다.

 

merge의 경우 기준이 되는 부분 on = '기준 칼럼', how = '조인 방식' 을 추가해줘야 합니다. 

how 를 설정하지 않을 경우 자동으로 inner join 이 됩니다. 

 

 

7 데이터 집계

group by

SQL 과 똑같이 group by 를 사용해서 데이터를 그룹화해서 볼 수 있습니다. 

이때 뒤에 다양한 연산 함수를 붙여서 결과를 볼 수 있습니다. 

 

.first

각 그룹화 칼럼에 대해 첫번째 값을 반환합니다.

.agg(list)

그룹화된 값을 하나의 리스트로 모아서 출력해줍니다. 

 

실제 데이터 테이블 예시로 실습을 해봅시다.

 

day 를 기준으로 total_bill, tip, size 칼럼 값들의 평균을 보고자 하는 코드입니다. 

더 나아가 sql 처럼 두 개 이상의 group by 기준을 가질 수 있지요. 

 

마지막으로 여기에 mean 대신 agg 함수를 써서 각각의 칼럼에 대해 출력할 값을 따로 지정해줄 수도 있습니다.

이런 경우 딕셔너리 형식으로 {칼럼:함수} 로 나열해서 넣으면 됩니다. 

 

파이썬과 SQL 사이의 Pandas.. 신기하고 사용이 정말 간편하네요 

 

pivot table

피벗 테이블을 만드는 방법도 보겠습니다. 

pivot 변수 안에 pivot_table 함수를 써서 저장해주고 출력해줍니다.

pivot_table 함수 안에는 index, columns, values, aggfunc 을 지정해줘야 합니다. 

 

column 이 될 칼럼을 여러 개 지정해줄 수도 있습니다. 

 

 

8 데이터 정렬

sql 의 order by 와 같은 기능을 하는 sort_values 입니다. 

기본은 오름차순이며 내림차순으로 정렬 시 accending = False 로 설정해주면 됩니다. 

또한 정렬 기중도 칼럼별로 다르게 설정할 수 있습니다.

 

 

지금까지 Pandas의 기초 개념을 8개의 주제로 나눠 살펴보며 데이터 전처리에 대해 알아봤습니다. 

 

다음 포스트에서 데이터 시각화와 Matplotlib 에 대해 알아보겠습니다.

 

 

 

 

오랑우탄이 영어를 하고 오랑이가 코드마스터가 되는 그날까지~

 

 

 

반응형