티스토리 뷰
반응형
1. groupby
의 기능
groupby
는 pandas 라이브러리에서 제공되는 메서드로, 데이터를 특정 기준으로 그룹화하여 처리할 때 사용합니다. 이를 통해 데이터를 그룹별로 분석하거나 집계할 수 있습니다.
2. groupby
사용 예
가. 예제코드
import pandas as pd
# 데이터프레임 생성
data = {
'학과': ['컴퓨터공학', '전자공학', '컴퓨터공학', '전자공학', '전자공학'],
'이름': ['Alice', 'Bob', 'Charlie', 'David', 'Ella'],
'점수': [85, 92, 78, 88, 95]
}
df = pd.DataFrame(data)
# 학과를 기준으로 그룹화
grouped = df.groupby('학과')
# 그룹별 평균 점수 계산
average_scores = grouped['점수'].mean()
나. 예제코드 결과
# average_scores 결과
# 학과
# 컴퓨터공학 81.5
# 전자공학 91.666667
# Name: 점수, dtype: float64
다. 자주 사용하는 기능(7가지)
1-1) 그룹별 통계 정보 확인
group_stats = grouped['점수'].describe()
1-2) 그룹별 통계 정보 결과
# count mean std min 25% 50% 75% max
# 학과
# 컴퓨터공학 2.0 81.5 4.949749 78.0 79.75 81.5 83.25 85.0
# 전자공학 3.0 91.666667 3.055050 88.0 90.00 92.0 93.5 95.0
2-1) 그룹 내 최대값 찾기
group_max = grouped['점수'].max()
2-2) 그룹 내 최대값 결과
# 학과
# 컴퓨터공학 85
# 전자공학 95
# Name: 점수, dtype: int64
3-1) 그룹별로 데이터 개수 세기
group_counts = grouped['이름'].count()
3-2) 그룹별 데이터 개수 결과
# 학과
# 컴퓨터공학 2
# 전자공학 3
# Name: 이름, dtype: int64
4-1) 그룹 내에서 가장 높은 점수를 받은 학생 선택
group_top = grouped.apply(lambda group: group.loc[group['점수'].idxmax()])
4-2) 그룹 내에서 가장 높은 점수 결과
# 학과 이름 점수
# 학과
# 컴퓨터공학 컴퓨터공학 Alice 85
# 전자공학 전자공학 Ella 95
5-1) 그룹별로 데이터 정렬하여 출력
group_sorted = grouped.apply(lambda group: group.sort_values('점수', ascending=False))
5-2) 그룹별 데이터 정렬 결과
# 학과 이름 점수
# 학과
# 컴퓨터공학 0 컴퓨터공학 Alice 85
# 2 컴퓨터공학 Charlie 78
# 전자공학 4 전자공학 Ella 95
# 3 전자공학 David 88
# 1 전자공학 Bob 92
6-1) 그룹별로 데이터 합산하기
group_sum = grouped['점수'].sum()
6-2) 그룹별 데이터 합산 결과
# 학과
# 컴퓨터공학 163
# 전자공학 275
# Name: 점수, dtype: int64
7-1) 그룹별로 최대 점수와 최대 점수 차이 구하기
group_max_diff = grouped['점수'].apply(lambda group: group.max() - group.min())
7-2) 그룹별 최대 점수와 최대 점수 차이 결과
# 학과
# 컴퓨터공학 7
# 전자공학 7
# Name: 점수, dtype: int64
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 독서
- ChatGPT
- 자기주도학습
- 아이들
- 교육
- 수업활용
- 사진
- 장기자랑
- 자기계발
- 2008년
- 유틸
- 조직문화
- 코렐
- 미술
- 가요차트
- 멜론
- 참고작품
- 파이선
- 교과연구회
- 대학원
- 마인드맵
- 명상
- 아인슈타인
- 멜론차트
- 팝차트
- 동영상
- 프로그램
- RCY
- 명언
- 수업자료
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함