본문 바로가기
Python/Data Analysis

[파이썬, Python] Pandas 모듈 - 5️⃣ 데이터프레임 집계함수, 그룹으로 묶기 groupby(), 중복값 제거하기 drop_duplicates()

by coding-choonsik 2023. 6. 12.
728x90
반응형
SMALL

1. describe()

  • 숫자형 데이터의 집계함수 결과를 데이터프레임 형태로 나타냄
df.describe()

 

 

# sum():해당 열에 대한 모든 데이터를 더하여 반환
df['키'].sum()
>>> 2445.3

# count(): 해당 데이터의 개수를 반환
df['이름'].count()
>>> 16
df['키'].count() 
>>> 14   # count는 NaN을 포함하지 않고 계산

# mean(): 해당 열에 대한 평균값을 계산하여 반환
df['키'].mean()
>>> 14

# max(): 해당 열에 대하여 최대값을 반환
df['키'].max()
>>> 183.0

# min(): 해당 열에 대하여 최소값을 반환
df['키'].min()
>>> 160.0

# var(): 분산, 데이터가 평균으로부터 얼마나 떨어져 있는지 정도
# (데이터 - 평균)**2를 모두 더한 값 / 데이터의 개수
df['키'].var()
>>> 49.08708791208794

# std(): 표준편차: 분산에 루트를 씌운 값
df['키'].std()
>>> 7.0062178036432705

2. 그룹으로 묶기, groupby()

# 데이터 확인
df

 

# groupby: 데이터를 그룹으로 묶어 분석할 때 사용, 중복데이터가 있는 컬럼으로 그룹을 맺는 것이 일반적
df.groupby('소속사')  

>>> <pandas.core.groupby.generic.DataFrameGroupBy object at 0x7f2aa56f8e20>  # 소속사로 그룹화된 객체가 생성됨

 

df.groupby('소속사').count()  # 각 소속사가 index가 되어 coulumn별로 count됨

 

df.groupby('소속사').mean()   # 평균을 계산할 수 있는 column만 계산해서 나옴

 

df.groupby('소속사').sum()

 

df.groupby('성별').mean()   # 성별로 그룹을 맺어 mean()을 계산할 수 있는 컬럼만 나옴

 

df.groupby('성별').count()  # 성별로 그룹을 맺고 각 그룹에 대한 count(), NaN값 제외

 

 

# 혈액형별로 그룹을 맺어서 키의 평균값을 확인, 보고자하는 컬럼을 groupby()뒤에 작성
df.groupby('혈액형')['키'].mean()

 

# 혈액형별로 그룹을 맺고 성별로 또 그룹을 나눈 후, 키의 평균값을 확인
df.groupby(['혈액형','성별'])['키'].mean()

 


3. 중복값 제거하기, drop_duplicates()

  • 혈액형, 소속사 등 중복된 데이터를 가진 컬럼에 대해 중복값을 제거
df['혈액형']

 

df['혈액형'].drop_duplicates()

▲ 중복값들 중 처음 등장하는 데이터들이 출력

df['혈액형'].drop_duplicates(keep='last')   # 마지막 데이터

▲ 중복값들 중 가장 마지막에 등장하는 데이터들이 출력

 


3-1. 특정 열에 중복 데이터의 발생 횟수 (개수) 알아보기

# value_counts(): 열에 각 값에 대한 발생 횟수(데이터의 개수)를 반환
df['혈액형'].value_counts()

df['그룹'].value_counts()   # 그룹이 NaN인 데이터는 생략됨

 

df['그룹'].value_counts(dropna=False) # 그룹이 NaN인 데이터까지 출력

 

 

728x90
반응형
LIST