Skip to content
판다스(Pandas)로 데이터 탐색적 분석: 완벽한 가이드

판다스(Pandas)로 데이터 탐색적 분석: 완벽한 가이드

Updated on

데이터 과학 프로젝트에서 탐색적 데이터 분석(EDA)은 필수적인 단계입니다. 이는 데이터를 이해하고 패턴을 식별하며 초기 관찰을 하는 것을 의미합니다. 이 글에서는 데이터 조작 및 분석을 위한 강력한 도구인 Python의 판다스(Pandas) 라이브러리를 사용하여 EDA를 수행하는 과정을 안내합니다. 결측치 처리에서 통찰력 있는 시각화 생성까지 모든 것을 다룰 것입니다.

판다스(Pandas)로 탐색적 데이터 분석 수행

결측치 처리

실제 데이터로 작업할 때 결측치가 발생하는 것은 흔합니다. 이는 데이터 입력 오류 또는 특정 조사 대상에 대한 데이터가 수집되지 않은 경우 등 다양한 이유로 발생할 수 있습니다. 결측치 처리는 적절하지 않게 처리되면 정확하지 않은 분석으로 이어질 수 있으므로 중요합니다.

판다스(Pandas)에서는 isnull() 함수를 사용하여 결측치를 확인할 수 있습니다. 이 함수는 각 셀이 원래 결측치를 포함하고 있으면 True(포함하지 않으면 False)로 구성된 DataFrame을 반환합니다. 각 열의 총 결측치 수를 얻으려면 sum() 함수를 연결하면됩니다.

missing_values = df.isnull().sum()

이렇게 하면 열 이름이 인덱스이고 각 열의 결측치 총 개수가 값인 시리즈가 반환됩니다. 데이터의 성격 및 수행할 분석에 따라 열의 결측값을 특정 값(열의 중앙값이나 평균 등)으로 채우거나 결측값을 포함하는 행 또는 열을 삭제하기로 결정할 수 있습니다.

고유한 값 탐색

EDA의 또 다른 중요 단계는 데이터 내 고유한 값을 탐색하는 것입니다. 이는 데이터의 다양성을 이해하는 데 도움이 될 수 있습니다. 예를 들어, 특정 특성의 범주를 나타내는 열이 있다면 고유 한 값 확인은 몇 가지 범주가 있는지 알려줄 수 있습니다.

판다스(Pandas)에서는 nunique() 함수를 사용하여 각 열의 고유한 값 수를 확인할 수 있습니다.

unique_values = df.nunique()

이렇게하면 열 이름이 인덱스이고 각 열의 고유한 값 수가 값인 시리즈가 반환됩니다.

값 정렬

특정 열에 따라 데이터를 정렬하는 것도 EDA에서 유용합니다. 예를 들어, '인구' 열로 데이터를 정렬하여 인구가 가장 많은 국가를 볼 수 있습니다. 판다스(Pandas)에서는 sort_values() 함수를 사용하여 DataFrame을 정렬할 수 있습니다.

sorted_df = df.sort_values(by='population', ascending=False)

이렇게 하면 '인구' 열을 내림차순으로 정렬한 새 DataFrame이 반환됩니다. ascending=False 인수는 열을 내림차순으로 정렬합니다. 오름차순으로 정렬하려면 기본값인 True를 생략할 수 있습니다.

히트맵으로 상관 관계 시각화

시각화는 데이터에서 볼 수 없는 가치있는 통찰력을 제공할 수 있습니다. 상관 관계 히트맵은 데이터의 다른 특성 간의 상관 관계를 시각화 할 수 있는 유용한 도구 중 하나입니다.

판다스(Pandas)에서는 corr() 함수를 사용하여 상관 행렬을 계산할 수 있습니다.

correlation_matrix = df.corr()

이것은 DataFrame을 반환하며, 행 'i'와 열 'j'의 교차점에 있는 셀에는 'i'-번째와 'j'-번째 기능간의 상관 계수가 포함됩니다. 상관 계수는 두 기능 간의 관계의 강도와 방향을 나타내는 -1에서 1 사이의 값입니다. 1에 가까운 값은 강한 양의 관계를 나타내고, -1에 가까운 값은 강한 음의 관계를 나타내며 0에 가까운 값은 관계가 없음을 나타냅니다.

이 상관 행렬을 시각화하려면 seaborn 라이브러리에서 heatmap() 함수를 사용할 수 있습니다.

import seaborn as sns
import matplotlib.pyplot as plt
 
plt.figure(figsize=(10, 7))
sns.heatmap(correlation_matrix, annot=True)
plt.show()

이렇게하면 각 셀의 색상이 해당 기능 간의 상관 계수를 나타냅니다. 'annot=True' 인수는 열의 correlation coefficients을 엽니다.

데이터 그룹화

일부 기준에 따라 데이터를 그룹화하면 유용한 정보를 제공할 수 있습니다. 예를 들어, 대륙별로 데이터를 그룹화하여 대륙 수준에서 데이터를 분석할 수 있습니다. Pandas에서 'groupby()' 함수를 사용하여 데이터를 그룹화 할 수 있습니다.

grouped_df = df.groupby('continent').mean()

이렇게하면 데이터가 'continent' 열에 따라 그룹화 된 새 DataFrame이 반환되고, 각 그룹의 값은 해당 그룹에서 원래 데이터의 평균 값입니다.

시간 경과에 따른 데이터 시각화

데이터를 시간 경과에 따라 시각화하면 추세와 패턴을 식별할 수 있습니다. 예를 들어, 각 대륙의 인구를 시간 경과에 따라 시각화하고 싶을 수 있습니다. Pandas에서 이를 위해 라인 플롯을 만들 수 있습니다.

df.groupby('continent').mean().transpose().plot(figsize=(20, 10))
plt.show()

이렇게하면 x 축은 시간을, y 축은 평균 인구를 나타내는 라인 플롯이 생성됩니다. 플롯의 각 라인은 서로 다른 대륙을 나타냅니다.

상자 그림을 사용하여 이상치 식별

상자 그림을 사용하여 데이터의 이상치를 식별할 수 있습니다. 이상치는 다른 값과 크게 다른 값을 의미합니다. 예를 들어, 측정 오류 또는 데이터의 실제 변수성 등과 같은 여러 요인으로 인해 발생할 수 있습니다.

Pandas에서 'boxplot()' 함수를 사용하여 상자 그림을 생성 할 수 있습니다.

df.boxplot(figsize=(20, 10))
plt.show()

이렇게하면 DataFrame의 각 열에 대해 상자 플롯이 생성됩니다. 각 상자 플롯의 상자는 (제 25 및 제 75 백분위수 사이의 범위 인) 사분위 범위를 나타내고, 상자 안의 선은 중앙값을 나타내며, 상자 밖의 점은 이상치를 나타냅니다.

데이터 유형 이해

DataFrame의 데이터 유형 이해도 EDA의 중요한 측면입니다. 서로 다른 데이터 유형은 다른 처리 기술을 요구하며 다른 유형의 작업을 수행할 수 있습니다. 예를 들어, 문자열 데이터에서는 숫자 연산을 수행할 수 없으며 그 반대로도 마찬가지입니다.

Pandas에서 'dtypes' 속성을 사용하여 DataFrame의 모든 열의 데이터 유형을 확인할 수 있습니다.

df.dtypes

### 데이터 유형에 따른 데이터 필터링

데이터 유형에 따라 특정 열에서만 연산을 수행하려는 경우가 있습니다. 예를 들어 숫자 열에서만 평균, 중앙값 등의 통계 측정값을 계산하려는 경우가 있습니다. 이러한 경우에는 데이터 유형을 기반으로 열을 필터링할 수 있습니다.

판다스에서는 `select_dtypes()` 함수를 사용하여 특정 데이터 유형의 열을 선택할 수 있습니다.

```python
numeric_df = df.select_dtypes(include='number')

이것은 수치 데이터만 포함하는 새로운 DataFrame을 반환합니다. 마찬가지로 다음과 같이 문자열 데이터 유형을 갖는 열을 선택할 수 있습니다.

object_df = df.select_dtypes(include='object')

히스토그램을 사용한 데이터 분포 시각화

히스토그램은 데이터 분포를 시각화하는 좋은 방법입니다. 중심 경향성, 변동성 및 왜도에 대한 통찰력을 제공할 수 있습니다.

판다스에서 hist() 함수를 사용하여 히스토그램을 만들 수 있습니다.

df['population'].hist(bins=30)
plt.show()

이것은 'population' 열에 대한 히스토그램을 생성합니다. bins 매개변수는 데이터를 나눌 구간 수를 결정합니다.

PyGWalker 및 판다스를 결합하여 탐색적 데이터 분석 수행

데이터 과학 및 분석 분야에서 pandas, matplotlib 및 seaborn과 같은 도구를 사용하여 데이터 탐색 및 분석에 깊이 빠지는 경우가 많습니다. 이러한 도구는 매우 강력하지만 대화형 데이터 탐색 및 시각화 측면에서는 때때로 약점이 있을 수 있습니다. 이때 PyGWalker가 해결책이 됩니다.

PyGWalker를 사용한 탐색적 데이터 분석 (opens in a new tab)

PyGWalker는 Jupyter Notebook(또는 다른 Jupyter 기반 노트북)과 Graphic Walker(테이블로 대체할 수 있는 오픈소스)와 완벽하게 통합되는 Python 라이브러리입니다. PyGWalker는 pandas dataframe을 Tableau 스타일의 사용자 인터페이스로 변환하여 시각적 탐색을 가능하게 하며 데이터 분석 워크플로우를 더 상호작용적이고 직관적으로 만들어줍니다.

PyGWalker는 열정적인 오픈 소스 기여자들에 의해 구축되었습니다. PyGWalker GitHub (opens in a new tab)를 꼭 확인하고 스타를 주세요!

PyGWalker 시작하기

PyGWalker 설치는 매우 간단합니다. Jupyter 노트북을 열고 다음을 입력하면됩니다.

!pip install pygwalker

PyGWalker를 사용한 대화형 데이터 탐색

PyGWalker를 설치한 후에는 데이터를 대화형으로 탐색할 수 있습니다. 이를 위해 데이터 프레임에서 walk() 함수를 호출하면됩니다.

import pygwalker as pyg
 
pyg.walk(data)

이것은 Tableau에 근사한 대화형 데이터 시각화 도구를 시작합니다. 인터페이스의 왼쪽에는 데이터 프레임의 변수가 표시됩니다. 중앙 영역은 시각화에 예약되어 있으며 변수를 X 및 Y 축 상자에 드래그하여 시각화할 수 있습니다. PyGWalker는 또한 필터, 색상, 불투명도, 크기 및 모양과 같은 다양한 사용자 정의 옵션을 제공하여 시각화를 특정 요구사항에 맞게 조정할 수 있도록 합니다.

PyGWalker를 사용한 시각화 만들기

PyGWalker를 사용한 시각화 만들기

PyGWalker를 사용하여 시각화를 만드는 것은 변수를 드래그하여 놓는 것만큼 간단합니다. 예를 들어, 판매에서 지역별 막대 그래프를 만들려면 "판매" 열을 x-축에, "지역" 열을 y-축에 드래그하면 됩니다. PyGWalker도 마크 타입을 선택하거나 자동 모드로 유지해도 도구가 가장 적절한 플롯 유형을 선택할 수 있도록 할 수 있습니다.

모든 유형의 데이터 시각화를 만드는 자세한 내용은 문서를 확인하세요.

PyGWalker로 데이터 살펴보기

Exploratory Data Analysis with PyGWalker

PyGWalker는 필터링 및 집계 옵션을 사용하기 쉽게 제공합니다. 열을 필터 상자로 드래그하여 어떤 열을 기준으로 데이터를 필터링할 수 있습니다. 마찬가지로, 사용 가능한 옵션에서 집계 함수를 선택하여 숫자 열을 집계할 수 있습니다.

자세한 예제 및 PyGWalker에서 탐색적 데이터 분석을 위한 도구는 문서를 확인하세요.

시각화에 만족하면 PNG 또는 SVG 파일로 내보내어 다음에도 사용할 수 있습니다. PyGWalker 0.1.6 업데이트에서는 시각화를 코드 문자열로 내보내기도 가능합니다.

결론

탐색적 데이터 분석(EDA)은 모든 데이터 과학 프로젝트에서 기본 단계입니다. 데이터를 이해하고 패턴을 파악하며 모델링 프로세스에 대한 판단을 내릴 수 있도록 합니다. Python의 Pandas 라이브러리는 효율적이고 효과적인 EDA를 수행하기 위한 다양한 기능을 제공합니다.

이 문서에서는 누락된 값 처리, 고유 값 살펴보기, 값 정렬, 상관 관계 시각화, 데이터 그룹화, 시간 대비 데이터 시각화, 이상 값을 식별, 데이터 유형 이해, 데이터 유형 기반 데이터 필터링 및 데이터 분포 시각화가 어떻게 처리되는지에 대해 다루었습니다. 이러한 기술이 데이터 과학 도구 상자에 있으면 직접 자신의 데이터를 탐색하여 가치 있는 인사이트를 추출할 수 있습니다.

EDA는 과학보다는 예술에 가까운 것입니다. 호기심, 직관 및 세부적인 시각력이 필요합니다. 따라서 여러 가지 각도에서 데이터를 탐색하도록 두려워하지 마세요. 분석하기 즐거운 일이 되길 바랍니다!

📚

자주하는 질문

  1. 탐색적 데이터 분석이란 무엇인가요?

    탐색적 데이터 분석이란 데이터를 분석하고 시각화하여 패턴, 관계 및 인사이트를 발견하는 과정입니다. 데이터 정리, 데이터 변환 및 데이터 시각화와 같은 기술을 포함합니다.

  2. 탐색적 데이터 분석이 중요한 이유는 무엇인가요?

    탐색적 데이터 분석은 데이터 이해, 트렌드 및 패턴 식별, 그리고 다음 분석에 대한 판단력을 제공하기 때문에 중요합니다. 데이터 과학자는 인사이트를 얻고 비즈니스 결정에 영향을 미칠 수 있는 숨겨진 패턴을 발견할 수 있습니다.

  3. 탐색적 데이터 분석에서 사용되는 일반적인 기술은 무엇인가요?

    탐색적 데이터 분석에서 사용되는 일반적인 기술은 요약 통계, 데이터 시각화, 데이터 정리, 누락된 값 처리, 이상 값 감지 및 상관 관계 분석 등이 있습니다.

  4. 탐색적 데이터 분석에 일반적으로 사용되는 도구는 무엇인가요?

    Pandas, NumPy 및 Matplotlib와 같은 Python 라이브러리와 Tableau 및 Excel과 같은 소프트웨어 등 탐색적 데이터 분석에 일반적으로 사용되는 여러 도구가 있습니다.

  5. 탐색적 데이터 분석의 주요 단계는 무엇인가요?

    탐색적 데이터 분석에서 주요 단계는 데이터 정리, 데이터 탐색, 데이터 시각화, 통계 분석 및 데이터로부터 결론을 이끌어내는 것입니다. 이러한 단계는 반복적이며 데이터를 계속적으로 정제하고 탐색합니다.