일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 오답노트
- 데이터다루기
- IT인프라
- 교육
- 프로젝트
- 데이터분석기초
- DX컨설턴트
- 머신러닝
- 데이터분석
- 데이터
- 데이터다듬기
- 구조
- 파이썬기초
- 정보화
- KT에이블스쿨5기
- 미니프로젝트
- 파이썬
- 넘파이
- MachineLearning
- It
- 판다스
- 자기개발
- 딥러닝
- 짧은생각
- 아키텍처
- 인프라
- 데이터프레임
- deeplearning
- KT에이블스쿨
- 데이터분석가
- Today
- Total
꾸준히 성장하기
[D+23] 오답노트 | .groupby() .loc[] 사용법 본문
안녕하세요, 오늘은 제가 최근 데이터 분석을 하면서 많이 사용하게 된 pandas의 .groupby()와 .loc[]에 대해 이야기해보려고 합니다.
특히 이 두 기능은 데이터를 다루면서 정말 자주 마주치게 되는데요, 저만 해도 처음에는 어려움을 겪었던 부분이기에 오늘은 이 두 기능을 제대로 정리해보려고 합니다.
1. .groupby( ) 의 활용
1) 단일 열로 그룹화
데이터를 분석할 때 특정 카테고리별로 통계나 요약을 내고 싶은 경우가 많죠.
pandas의 .groupby() 함수를 사용하면 이 작업이 꽤 간단해집니다.
먼저, 단일 열을 기준으로 데이터를 그룹화하는 방법부터 살펴보겠습니다.
예를 들어, 우리가 고객 데이터에서 주소('Addr1')별로 고객 수를 세고 싶다면, 아래와 같이 코드를 작성할 수 있어요.
tmp = cst.groupby(by='Addr1', as_index=False)['CustomerID'].count()
이 코드는 'Addr1' 열의 각 고유값을 기준으로 데이터를 그룹화하고, 각 그룹에 속한 고객 ID('CustomerID')의 수를 세어 새로운 데이터프레임에 저장합니다.
여기서 as_index=False 옵션은 'Addr1'을 인덱스로 사용하지 않고 별도의 열로 유지하겠다는 뜻이에요. 이 옵션 덕분에 결과물을 더 읽기 쉽게 만들 수 있죠.
2) 여러 열로 그룹화
이제 조금 더 상세한 분류를 위해 여러 열을 기준으로 데이터를 그룹화하는 방법을 살펴볼게요. 고객의 지역('Addr1')과 유형('Type')을 기준으로 데이터를 그룹화하고자 할 때는 아래와 같이 작성합니다.
tmp = cst.groupby(by=['Addr1', 'Type'], as_index=False)['CustomerID'].count()
이렇게 하면 우리는 주소와 고객 유형의 조합에 따라 세분화된 데이터를 얻을 수 있어요. 결과적으로, 'Addr1', 'Type', 그리고 해당 조합에 대한 'CustomerID'의 개수를 열로 가지는 tmp 데이터프레임을 얻게 됩니다.
2. .loc[ ] 의 활용
loc는 데이터프레임에서 라벨 기반의 선택을 위해 사용되며, 행과 열을 선택할 때 매우 유용합니다.
loc를 사용할 때 대괄호 안에 들어갈 수 있는 요소들은 다음과 같습니다.
# 단일 열 선택
df.loc[ :, 'column_name']
# 여러 열 선택
df.loc[ :, ['column_name_1', 'column_name_2']]
# 조건에 맞는 행 선택
df.loc[df['column_name'] > value]
# 조건에 맞는 행과, 특정 열 선택
df.loc[df['column_name'] > value, 'another_column_name']
# 슬라이스를 통한 행 선택
df.loc['row_label_1':'row_label_2']
아래는 특정 고객 ID를 가진 데이터만 선택하는 예시입니다.
selected_data = cst.loc[cst['CustomerID'] == '특정값', ['Addr1', 'Type']]
여기서 'CustomerID' == '특정값'은 특정 고객 ID를 가진 행을 선택하라는 조건이고, ['Addr1', 'Type']은 해당 행들에서 'Addr1'과 'Type' 열만 선택하라는 의미입니다.
데이터 분석에 있어 이러한 도구들의 활용은 매우 중요한데요, 실제 데이터셋에 적용해보면서 그 사용법에 익숙해지는 것이 좋습니다.
저도 처음에는 많이 헤맸지만, 여러 번 시도하고 다양한 데이터셋에 적용해보니 점점 더 감이 잡히기 시작했어요.
여러분도 이 글을 참고하여 한 단계 성장하길 바랍니다🔥
'KT 에이블스쿨 5기 > 오답노트' 카테고리의 다른 글
[D+48] 오답노트 | 예측과 튜닝 (0) | 2024.04.08 |
---|---|
[D+28] 오답노트 | 리스트 컴프리헨션(List Comprehension) (0) | 2024.03.19 |
[D+8] 오답노트 | 제어문 혼동되는 개념정리 (4) | 2024.02.28 |
[D+7] 오답노트 | 딕셔너리 혼동되는 개념정리 (0) | 2024.02.27 |
[D+7] 오답노트 | 리스트 혼동되는 개념정리 (0) | 2024.02.27 |