Skip to content

판다스 데이터프레임 쉽게 요약하는 방법

데이터 과학자의 도구상자에서 판다스는 특히 데이터프레임을 요약하는 작업에서 강력한 도구입니다. 이러한 메소드를 이해하는 것은 대규모 데이터셋을 처리할 수 있는 능력을 키울 뿐만 아니라 인사이트를 더욱 효과적으로 전달할 수 있도록 도와줍니다. 여기에서는 이러한 목적으로 사용되는 다양한 함수를 살펴보며 명확한 예제를 제공합니다.

데모를 위해 Kaggle의 Supermarket Sales 데이터셋을 사용할 것입니다.

# 라이브러리 가져오기
import pandas as pd
 
# 파일 가져오기
ss = pd.read_csv('supermarket_sales.csv')
 
# 데이터 미리보기
ss.head()

파이썬으로 빠르게 데이터 시각화를 만들고 싶으신가요?

PyGWalker는 Jupyter Notebook 환경에서 데이터 분석 및 시각화 작업의 효율성을 높이도록 도와주는 오픈소스 파이썬 프로젝트입니다.

PyGWalker (opens in a new tab)는 Pandas 데이터프레임 (또는 Polars 데이터프레임)을 시각화 된 UI로 바꿔주어 변수를 드래그앤드롭으로 그래프를 생성하는 것이 매우 쉬워집니다. 다음 코드를 사용하세요.

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

이제 바로 온라인 노트북에서 PyGWalker를 실행하실 수 있습니다:

그리고 깃허브에서 ⭐️ 를 눌러주세요!

Kaggle Notebook에서 PyGWalker 실행 (opens in a new tab)Google Colab에서 PyGWalker 실행 (opens in a new tab)PyGWalker 깃허브에 ⭐️ 누르기 (opens in a new tab)
Kaggle Notebook에서 PyGWalker 실행 (opens in a new tab)Google Colab에서 PyGWalker 실행 (opens in a new tab)PyGWalker 깃허브에 ⭐️ 누르기 (opens in a new tab)

info()를 이용한 간결한 요약

info() 메소드는 데이터프레임의 간결한 요약을 제공합니다. 레코드 수, 열 이름, 데이터 유형, 인덱스 범위 및 메모리 사용량 등을 표시하므로 데이터 클리닝에 매우 유용합니다.

## `describe()`을 이용한 기술통계
 
`describe()` 함수는 NaN 값을 제외하고 데이터셋 분포의 분산과 형태를 확인할 수 있는 기술통계를 생성합니다.
 
```python
ss.describe()

기본 결과는 숫자형 데이터에 대한 것입니다. 그러나 include 매개변수를 사용하면 데이터프레임의 다른 데이터 유형에 대한 통계를 표시할 수 있습니다.

ss.describe(include=['object', 'int'])

value_counts()를 이용한 고유값 개수 세기

value_counts() 함수는 지정된 시리즈에 대한 고유한 값의 개수를 반환합니다(NaN 값은 기본적으로 제외).

ss['City'].value_counts()

nunique()를 이용한 고유 관측값 수 세기

nunique() 함수는 고유 관측값 수를 세는데 사용될 수 있으며 데이터프레임 또는 시리즈에 모두 사용할 수 있습니다.

ss.nunique()

sum()을 이용한 값의 합계

sum() 함수는 요청된 축(axis)에 대한 값의 합계를 반환하며 데이터프레임과 시리즈 둘 다 작동합니다.

ss.sum(numeric_only=True)

count()를 이용한 NaN이 아닌 관측값 수 세기

count() 함수는 NaN이 아닌 관측값 개수를 반환합니다. 데이터프레임과 시리즈 모두에 적용할 수 있습니다.

ss.count(numeric_only=True)

최소값, 최대값, 평균값, 중간값

이러한 함수(min(), max(), mean(), median())는 각각 값의 최소값, 최대값, 평균값, 중간값을 반환합니다.

ss.max()
ss.min()
ss.mean()
ss.median()

agg()를 사용하여 다중 집계 작업 적용하기

agg() 함수를 사용하면 지정된 축을 기준으로 동일한 데이터 세트에 대해 둘 이상의 집계 작업을 적용할 수 있습니다.

ss.agg(['count', 'min', 'max', 'mean'])

groupby()를 사용하여 데이터 그룹화하기

groupby()를 사용하면 합계, 최대, 최소와 같은 집계 함수를 적용하여 동일한 값을 갖는 데이터를 요약 행으로 그룹화할 수 있습니다.

ss.groupby('City').sum()
ss.groupby(['City', 'Customer type']).sum()

특정 값으로 그룹화하고 동일한 데이터 세트에 대해 둘 이상의 유형의 집계를 적용하려면 agg() 함수를 사용할 수 있습니다.

ss.groupby('City').agg({'Total': ['count', 'min', 'max', 'mean'], 'Rating': 'mean'})

결론

Pandas 데이터프레임을 요약하는 것은 처음에는 복잡할 수 있지만, 이러한 기술을 견고하게 이해하면 데이터셋의 전체 잠재력을 발휘할 수 있습니다. 이러한 방법을 숙달함으로써 데이터 분석 프로세스를 간소화하고 명확하고 간결한 방식으로 인사이트를 제공할 수 있습니다.