판다스 데이터프레임 쉽게 요약하는 방법
Updated on
데이터 과학자의 도구상자에서 판다스는 특히 데이터프레임을 요약하는 작업에서 강력한 도구입니다. 이러한 메소드를 이해하는 것은 대규모 데이터셋을 처리할 수 있는 능력을 키울 뿐만 아니라 인사이트를 더욱 효과적으로 전달할 수 있도록 도와줍니다. 여기에서는 이러한 목적으로 사용되는 다양한 함수를 살펴보며 명확한 예제를 제공합니다.
데모를 위해 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를 실행하실 수 있습니다:
그리고 깃허브에서 ⭐️ 를 눌러주세요!
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 데이터프레임을 요약하는 것은 처음에는 복잡할 수 있지만, 이러한 기술을 견고하게 이해하면 데이터셋의 전체 잠재력을 발휘할 수 있습니다. 이러한 방법을 숙달함으로써 데이터 분석 프로세스를 간소화하고 명확하고 간결한 방식으로 인사이트를 제공할 수 있습니다.