Skip to content
Pandas와 PyGWalker를 활용한 데이터프레임 시각화 마스터하기

Pandas를 사용한 데이터프레임 시각화 마스터하기

데이터프레임 시각화는 데이터 과학자나 데이터 분석가의 무기 중 하나로 강력한 도구입니다. 이를 통해 복잡한 데이터셋을 이해하고 원시 데이터에서는 바로 알기 어려운 인사이트(insight)를 추출할 수 있습니다. 이 기사에서는 특히 pandas 라이브러리에 초점을 맞춰 Python을 사용하여 데이터프레임을 시각화하는 과정을 안내합니다. 기본적인 것들부터 고급 기술까지 모두를 다루며, 이 과정에서 많은 코드 예제를 제공합니다.

데이터프레임 시각화의 필요성

데이터 시각화는 탐색적 데이터 분석의 필수적인 측면입니다. 이를 통해 데이터를 빠르게 분석하고, 추세, 패턴, 이상치 등을 식별할 수 있습니다. 게다가 데이터 시각화는 분석 결과를 보다 효과적으로 제시해주므로, 숫자만으로만 제시하는 것보다 훨씬 효율적인 토론을 유도합니다.

예를 들어, 여러 해 동안 한 도시의 인구에 관한 정보를 포함하는 대규모 데이터셋을 다루고 있다고 가정해보겠습니다. 데이터를 일일이 한 줄씩 확인할 수도 있지만, 시간 대비 인구 변화를 보여주는 선 플롯을 생성하는 것이 더 효율적이고 직관적입니다. 이것이 데이터프레임 시각화의 진가입니다.

PyGWalker: 드래그 앤 드롭으로 데이터프레임 시각화하기

Python을 위한 강력하고 사용하기 쉬운 대화형 데이터 시각화 도구를 찾고 있다면, PyGWalker를 권장합니다. "Pig Walker"처럼 발음하는 PyGWalker는 "Graphic Walker"의 Python 바인딩입니다. 이를 통해 데이터 과학자는 간단한 드래그 앤 드롭 조작으로 데이터를 분석하고 패턴을 시각화할 수 있습니다. Graphic Walker는 Tableau의 오픈소스 대안이므로, Python에서도 유사한 작업을 수행할 수 있습니다.

PyGWalker를 사용하여 내부 데이터탐색가를 발휘해보세요. (opens in a new tab)

PyGWalker를 시작하려면 먼저 설치해야 합니다. pip 또는 conda를 통해 설치할 수 있습니다:

# Using pip
pip install pygwalker
 
# Using conda
conda install -c conda-forge pygwalker

설치가 완료되면, Jupyter Notebook에 PyGWalker와 pandas를 가져올 수 있습니다:

import pandas as pd
import pygwalker as pyg

PyGWalker를 사용하면 pandas 데이터프레임을 Tableau 스타일의 사용자 인터페이스로 변환하여 시각적 탐색이 가능합니다. 예를 들어, pandas로 로드된 데이터프레임이 있다면 다음과 같이 데이터프레임을 가져와서 Graphic Walker를 호출할 수 있습니다:

df = pd.read_csv('./bike_sharing_dc.csv', parse_dates=['date'])
gwalker = pyg.walk(df)

이렇게 하면 Tableau와 유사한 사용자 인터페이스가 만들어지며, 변수를 드래그 앤 드롭하여 데이터를 분석하고 시각화할 수 있습니다. 여러 차트를 생성하기 위해 마크 유형을 변경하거나, 다른 측정값을 비교하기 위해 병합 뷰(concat view)를 생성할 수 있습니다. 또한, 데이터 탐색 결과를 로컬 파일로 저장할 수도 있습니다.

이제 PyGWalker를 사용하여 강력한 데이터 시각화를 할 수 있습니다. 마크 유형을 변경하여 선 그래프와 같은 다른 유형의 차트를 만들거나, 다음과 같이 여러 측정값을 비교하기 위해 병합 뷰(concat view)를 만들 수 있습니다:

graphic walker line chart

열/행에 여러 측정값을 가져와 병합 뷰를 생성하면 다른 측정값을 비교해볼 수 있습니다:

graphic walker area chart 다음 차원 값으로 분할된 여러 하위 뷰를 갖는 facet view를 만드세요: graphic walker scatter chart

데이터 프레임을 표로 볼 수 있으며 분석 유형 및 의미 유형을 구성하세요: page-data-view-light

PyGWalker는 사용하기 쉽고 강력합니다. 대용량 데이터 집합 및 복잡한 시각화를 처리할 수 있습니다. 작은 데이터 집합이나 큰 데이터 집합을 사용하더라도 PyGWalker를 사용하여 데이터를 효과적으로 탐색하고 분석할 수 있습니다.

Python에서 데이터프레임을 다루고 데이터 시각화 도구가 필요하다면, PyGWalker를 사용해보세요. PyGWalker는 사용하기 쉽고 강력하며 Jupyter Notebook과 pandas와 완벽하게 통합됩니다. 적극적으로 활용하여 데이터 분석 및 시각화 과정을 개선해보세요!

PyGWalker Github 페이지 (opens in a new tab)를 방문해보세요.

데이터프레임 시각화를 위한 Pandas 시작하기

Python의 인기 있는 데이터 분석 라이브러리인 pandas는 데이터 시각화를 위해 여러 가지 옵션을 제공합니다. pandas 여행을 시작하더라도 곧 데이터를 탐색할 수 있는 유용한 기본 플롯을 생성할 수 있습니다.

pandas를 시작하려면 먼저 불러와야 합니다. 다음과 같이 불러올 수 있습니다:

import pandas as pd

Pandas를 불러오면 플롯을 생성할 수 있습니다. 예를 들어 두 개의 열 AB가 있는 데이터프레임 df가 있다면 다음과 같이 AB에 대해 나타내는 선 플롯을 생성할 수 있습니다:

df.plot(x='A', y='B', kind='line')

이렇게 하면 'A'가 x축에, 'B'가 y축에 나타나는 선 플롯이 생성됩니다. kind 매개변수는 생성할 플롯의 종류를 결정합니다. 이 경우에는 선 플롯을 생성하지만 막대 플롯, 히스토그램, 산점도 등도 생성할 수 있습니다.

pandas에서 데이터프레임을 시각화하는 다양한 방법

Pandas는 데이터프레임을 시각화하기 위한 다양한 방법을 제공하며, 이는 다양한 종류의 데이터 및 질문 유형에 맞게 적합합니다. pandas로 생성할 수 있는 일반적인 플롯 유형을 살펴보겠습니다.

선 플롯

선 플롯은 시간 경과에 따른 변화를 시각화하는 데 적합합니다. 예를 들어 일자 열과 숫자 열이 있는 데이터프레임이 있다면, 선 플롯을 사용하여 숫자 값이 시간에 따라 어떻게 변하는지 시각화할 수 있습니다.

다음은 예입니다:

df.plot(x='date', y='value', kind='line')

이렇게 하면 'date'가 x축에, 'value'가 y축에 나타나는 선 플롯이 생성됩니다.

막대 플롯

막대 플롯은 다른 범주에 걸쳐 수량을 비교하는 데 유용합니다. 예를 들어 범주 열과 숫자 열이 있는 데이터프레임이 있다면, 범주별로 숫자 값을 비교하기 위해 막대 플롯을 사용할 수 있습니다.

다음은 막대 플롯을 만드는 방법입니다:

df.plot(x='category', y='value', kind='bar')

이렇게 하면 'category'가 x축에, 'value'가 y축에 나타나는 막대 플롯이 생성됩니다.

히스토그램

히스토그램은 수치형 변수의 분포를 시각화하는 데 유용합니다. 변수를 bin으로 나누고 각 bin의 관측치 수를 세어 이를 막대로 나타냅니다.

다음은 수치형 열의 히스토그램을 만드는 방법입니다.

df['value'].plot(kind='hist')

이렇게 하면 'value' 열의 히스토그램이 생성됩니다.

데이터프레임 시각화에 대한 고급 전략

판다스의 기본 플로팅 기능은 강력하지만 더 나은 통찰력을 가진 시각화를 만들 수있는 고급 전략도 있습니다. 이러한 기술 중 일부를 살펴 보겠습니다.

서브플롯(Subplots)

서브플롯을 사용하면 하나의 그림에서 여러 플롯을 만들 수 있습니다. 특히 여러 분포나 동향을 동시에 비교하려는 경우에 유용합니다. 다음은 판다스에서 서브플롯을 만드는 방법의 예입니다.

df[['A', 'B', 'C']].plot(subplots=True)

이렇게 하면 'A', 'B', 'C' 열 각각에 대해 하나의 서브플롯이 생성됩니다.

산점도 행렬(Scatter Matrix)

산점도 행렬은 행렬 형식으로 제시되는 여러 변수의 쌍별 산점도 플롯입니다. 변수 간의 상관 관계와 상관 관계가 양의지 또는 음의지 여부를 결정하는 데 사용할 수 있습니다. 판다스에서는 pandas.plotting 모듈의 scatter_matrix 함수를 사용하여 산점도 행렬을 만들 수 있습니다.

from pandas.plotting import scatter_matrix
 
scatter_matrix(df[['A', 'B', 'C']])

이렇게 하면 'A', 'B', 'C' 열에 대한 산점도 행렬이 생성됩니다.

판다스를 사용한 대화형 데이터프레임 시각화

정적 플롯은 유용하지만 대화 형 플롯은 관심 영역에 확대 / 축소 할 수 있고 값에 대한 정보를 볼 수 있기 때문에 데이터의 깊은 이해를 제공 할 수 있습니다. Pandas를 사용하여 대화형 시각화를 만드는 데 도움이되는 Qgrid 및 Lux와 같은 여러 도구가 있습니다.

Qgrid

Qgrid는 SlickGrid 구성 요소를 사용하여 데이터프레임에 대한 상호 작용성을 추가하는 Jupyter 노트북 위젯입니다. Jupyter 노트북에서 데이터 프레임을 정렬, 필터링 및 편집할 수 있습니다. 다음은 Qgrid를 사용하는 방법의 예입니다.

import qgrid
 
qgrid_widget = qgrid.show_grid(df, show_toolbar=True)
qgrid_widget

이렇게 하면 데이터프레임 df에 대한 대화형 그리드가 생성됩니다.

Lux

Lux는 판다스 데이터프레임을 사용하면 유용하고 관련성이 있는 시각화를 자동 추천하여 데이터를 쉽게 탐색할 수있게 해주는 경량 시각화 도구입니다. Lux를 사용하는 방법은 다음과 같습니다.

```python
import lux
 
df.intent = ['A', 'B']
df

이렇게 하면 데이터프레임 df의 'A'와 'B'열에 대한 시각화가 자동으로 생성됩니다.

데이터프레임으로 그룹화된 데이터 시각화

자주하는 작업 중 하나로 특정 변수에 따라 데이터를 그룹화하고, 이를 시각화하는 경우가 있습니다. 예를 들어, 연도에 따라 도시 인구 데이터 집합을 그룹화하고 시간에 따른 인구 변화를 시각화하려면, pandas를 사용하여 다음과 같이 할 수 있습니다.

grouped = df.groupby('year')['population'].sum()
grouped.plot(kind='line')

이렇게 하면 각 연도의 총 인구에 대한 선 그래프가 생성됩니다.

📚

결론

데이터프레임 시각화는 데이터 분석과 데이터 과학에 있어 강력한 도구입니다. Python과 pandas를 사용하여 기본적인 플롯부터 고급 및 대화형 플롯까지 다양한 시각화를 생성할 수 있습니다. 지금 바로 데이터프레임 시각화를 시작하여 데이터에 숨겨진 통찰력을 발견해보세요!

자주 묻는 질문

  1. 데이터프레임 시각화란 무엇인가요? 데이터프레임 시각화는 그래프나 차트와 같은 시각적 형식으로 데이터프레임의 데이터를 나타내는 과정입니다. 이는 데이터의 패턴, 추세 및 상관 관계를 이해하는 데 도움이 됩니다.

  2. Python에서 데이터프레임을 시각화하려면 어떻게 해야 하나요? Python은 pandas, matplotlib, seaborn 및 PyGWalker를 비롯한 데이터프레임 시각화를 위한 여러 라이브러리를 제공합니다. 이러한 라이브러리는 선 그래프, 막대 그래프, 히스토그램 등 다양한 종류의 플롯을 만드는 기능을 제공합니다.

  3. pandas 데이터프레임 시각화란 무엇인가요? pandas 데이터프레임 시각화는 pandas 라이브러리를 사용하여 pandas 데이터프레임에 저장된 데이터의 시각적 표현을 생성하는 과정입니다. pandas는 다양한 종류의 플롯을 만들기 위한 .plot() 함수를 제공합니다.

  4. 데이터프레임 시각화를 위한 몇 가지 도구는 무엇인가요? pandas 자체, matplotlib, seaborn 및 PyGWalker와 같은 대화형 도구는 pandas 데이터프레임 시각화를 위한 인기 있는 도구입니다.

  5. Pandas 데이터프레임을 Plotly로 시각화할 수 있나요? 예, Plotly는 Python에서 pandas 데이터프레임을 위한 대화형 플롯을 만드는 또 하나의 라이브러리입니다. 이는 매력적이고 유익한 통계 그래픽을 그리기 위한 고수준 인터페이스를 제공합니다.

📚