판다스(Pandas)를 사용한 데이터프레임 시각화 방법
Updated on
데이터 시각화는 데이터를 처리하는 사람들에게 필수적인 기술입니다. 데이터 시각화를 통해 자료를 다루는 방법을 파악하고, 결과를 보다 효과적으로 제시하며, 복잡한 정보를 간단한 시각적 형태로 전달할 수 있습니다. 이번 가이드에서는 파이썬의 강력한 데이터 분석 도구인 판다스(Pandas)를 사용하여 데이터프레임을 시각화하는 방법을 알아보겠습니다.
Python에서 빠르게 데이터 시각화를 생성하려면?
PyGWalker는 Jupyter Notebook 기반 환경에서 직접 데이터 분석 및 시각화 작업을 빠르게 수행하는 데 도움이 되는 오픈 소스 파이썬 프로젝트입니다.
PyGWalker (opens in a new tab)를 사용하면 판다스 데이터프레임 (또는 Polars 데이터프레임)을 시각적 UI로 변환하여 변수를 드래그하여 그래프를 쉽게 생성할 수 있습니다. 다음 코드를 사용하세요:
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
PyGWalker를 다음 온라인 노트북에서 확인할 수 있습니다:
그리고, GitHub에서 ⭐️를 눌러주세요!
판다스(Pandas)란 무엇인가요?
판다스(Pandas)는 파이썬을 위한 고성능, 쉽게 사용할 수 있는 데이터 구조 및 데이터 분석 도구를 제공하는 오픈 소스 라이브러리입니다. 파이썬의 인기 있는 시각화 라이브러리인 Matplotlib (opens in a new tab) 위에 구축되어 있으며 다양한 그래프를 생성하는 사용자 친화적인 인터페이스를 제공합니다.
판다스(Pandas)를 사용한 데이터 시각화의 장점은 무엇인가요?
판다스(Pandas)는 대용량 데이터셋을 쉽게 다룰 수 있으며, 다른 파이썬 라이브러리와 연계하여 사용할 수 있습니다. 다양한 그래프 유형을 지원하며, 복잡한 시각화에 대한 적응성이 높습니다.
판다스(Pandas)로 생성할 수 있는 다양한 그래프 유형은 무엇인가요?
판다스(Pandas)는 선 그래프를 비롯한 다양한 그래프 유형을 지원합니다.
- 막대 그래프
- 히스토그램
- 상자 그림
- 산점도
- 헥스빈 그래프
- 영역 차트
- 파이 차트
Pandas에서 라이브러리 및 데이터셋을 가져오는 방법은 무엇인가요?
시각화를 시작하기 전에 필요한 라이브러리를 가져와 데이터셋을 로드해야합니다. 다음은 Pandas를 가져오고 CSV 파일을 읽는 방법의 예입니다:
import pandas as pd
data = pd.read_csv('data.csv')
Pandas에서 라인 플롯은 무엇인가요?
라인 플롯은 직선 세그먼트로 연결된 데이터 포인트 시리즈로 정보를 표시하는 그래프 유형입니다. 시간 경과에 따른 변수 간의 동향과 관계를 시각화하는 데 유용합니다.
다음은 Pandas에서 간단한 라인 플롯을 만드는 방법의 예입니다:
data.plot(kind='line', x='date', y='price')
Pandas에서 막대 그래프를 만드는 방법은 무엇인가요?
막대 그래프는 데이터 값을 나타내는 직사각형 막대를 사용하여 데이터를 표시하는 그래프 유형입니다. 범주형 데이터를 시각화하고 범주 간의 값을 비교하는 데 유용합니다.
다음은 Pandas에서 간단한 막대 그래프를 만드는 방법의 예입니다:
data.plot(kind='bar', x='category', y='value')
이제 Pandas와 그래프 작성 기능에 대해 기본적인 이해를 하였으니, 몇 가지 고급 예제를 살펴 보겠습니다.
예제 1: 월간 주식 가격의 라인 플롯
이 예제에서는 Facebook, Microsoft 및 Apple 세 기술 거대의 월간 주식 가격을 그래프로 표시합니다. 첫째로 필요한 라이브러리를 가져오고 주식 데이터를 로드합니다.
import pandas as pd import matplotlib.pyplot as plt stock_data = pd.read_csv('stock_data.csv')
그 다음으로 데이터를 월별로 샘플링하여 각 월의 평균 주식 가격을 가져옵니다.
monthly_data = stock_data.resample('M', on='Date').mean()
마지막으로 각 기업의 월간 주식 가격을 그래프로 표시합니다.
monthly_data.plot(kind='line', x='Date', y=['Facebook', 'Microsoft', 'Apple'])
plt.title('Monthly Stock Prices of Facebook, Microsoft, and Apple')
plt.xlabel('Date')
plt.ylabel('주식 가격')
plt.legend(['Facebook', 'Microsoft', 'Apple'])
plt.show()
이 그래프는 Facebook, Microsoft, Apple의 월별 주식 가격 추이를 보여주어 시간에 따른 성과를 비교할 수 있습니다.
예시 2: 제품 판매에 대한 막대 그래프
이 예제에서는 상점에서 다른 제품의 판매를 시각화하기 위해 막대 그래프를 생성합니다. 먼저 필요한 라이브러리를 가져오고 판매 데이터를 로드합니다.
import pandas as pd
import matplotlib.pyplot as plt
sales_data = pd.read_csv('sales_data.csv')
다음으로, 제품으로 판매 데이터를 집계합니다.
product_sales = sales_data.groupby('Product')['Sales'].sum()
이제 각 제품의 판매를 시각화하는 막대 그래프를 생성합니다.
product_sales.plot(kind='bar')
plt.title('제품 판매')
plt.xlabel('제품')
plt.ylabel('판매량')
plt.show()
이 막대 그래프는 각 제품의 판매를 표시하므로 상점에서 가장 잘 팔리는 제품을 쉽게 식별할 수 있습니다.
예시 3: Pandas에서 그래프 사용자 정의
Pandas를 사용하여 그래프를 다양한 방법으로 사용자 지정할 수 있습니다. 색상 변경, 레이블 추가 및 플롯 크기 조정과 같은 방법이 있습니다. Pandas에서 선 그래프를 사용자 정의하는 방법의 예를 살펴보겠습니다.
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('data.csv')
data.plot(kind='line', x='date', y='price', figsize=(10, 6), color='red', linestyle='dashed', linewidth=2)
plt.title('사용자 정의된 선 그래프')
plt.xlabel('날짜')
plt.ylabel('가격')
plt.show()
이 예에서는 색상을 빨간색으로 변경하고 대시선 스타일을 사용하며 라인 폭을 2로 설정하여 선 그래프를 사용자 지정했습니다. 또한 figsize
매개변수를 사용하여 플롯 크기를 조정했습니다.
예시 4: Pandas DataFrame의 여러 축을 사용한 플로팅
때때로 동일한 그림 내부에 여러 플롯을 표시하고 싶을 때가 있습니다. Pandas는 subplots
매개변수를 사용하여 서브 플롯을 생성하는 것이 쉽습니다. 여기 2x2 서브 플롯 그리드를 만드는 방법의 예가 있습니다.
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('data.csv')
fig, axes = plt.subplots(2, 2, figsize=(10, 6))
data.plot(kind='line', x='date', y='price', ax=axes[0, 0])
data.plot(kind='bar', x='category', y='value', ax=axes[0, 1])
data.plot(kind='scatter', x='date', y='price', ax=axes[1, 0])
data.plot(kind='hist', y='price', ax=axes[1, 1])
plt.tight_layout()
plt.show()
이 예시에서는 다른 종류의 플롯을 포함한 2x2 그리드 하위 플롯을 만들었습니다.
예시 5: 판다스 플로트에서 에러바 추가
에러바는 데이터 포인트의 변동성이나 불확실성을 표시하는 데 유용합니다. 이 예에서는 판다스 브로그에서 막대 그래프에 에러바를 추가하는 방법을 보여줍니다.
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('data.csv')
data.plot(kind='bar', x='category', y='value', yerr='error')
plt.title('에러바가 있는 막대 그래프')
plt.xlabel('분류')
plt.ylabel('값')
plt.show()
이 예제에서는 yerr
매개변수를 사용하여 막대 그래프에 에러바를 추가했습니다.
예시 6: 판다스 플롯에서 범례 사용자 정의
위치, 크기 및 기타 속성을 조정하여 판다스 그래프의 범례를 사용자 정의할 수 있습니다. 이 예에서는 라인 플롯에서 범례를 사용자 정의하는 방법을 보여줍니다.
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('data.csv')
ax = data.plot(kind='line', x='date', y='price')
ax.legend(loc='upper right', fontsize=12, title='가격', title_fontsize=14, frameon=False)
plt.title('사용자 정의된 범례가 있는 라인 플롯')
plt.xlabel('날짜')
plt.ylabel('가격')
plt.show()
위 예제에서는 범례 위치를 오른쪽 상단으로 설정하고 글꼴 크기를 12로 변경하고 제목을 추가하며 제목 글꼴 크기를 14로 설정하고 범례 주위의 프레임을 제거하여 범례를 사용자 정의했습니다.
예시 7: 카테고리 데이터를 처리하는 판다스 플롯
판다스는 플롯 생성 시 카테고리 데이터를 쉽게 처리할 수 있습니다. 이 예에서는 카테고리 데이터를 사용하여 막대 그래프를 만드는 방법을 보여줍니다.
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('categorical_data.csv')
data['category'] = data['category'].astype('category')
data.plot(kind='bar', x='category', y='value')
plt.title('Bar Plot with Categorical Data')
plt.xlabel('Category')
plt.ylabel('Value')
plt.show()
이 예시에서는 `astype` 메서드를 사용하여 'category' 열을 범주형 데이터 유형으로 변환하여 판다스에서 범주형 데이터를 올바르게 처리할 수 있도록하여 막대 그래프를 생성했습니다.
### 예제 8 : 여러 축에 대하여 서로 다른 스케일로 데이터 플롯
때로는 같은 그래프에서 서로 다른 스케일로 데이터를 플롯하고 싶을 때가 있습니다. 판다스에서는 여러 축을 사용하여 이 작업을 수행할 수 있습니다. 여러 축을 사용하여 라인 플롯을 만드는 방법의 예시입니다.
```python copy
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('data.csv')
fig, ax1 = plt.subplots()
ax1.plot(data['date'], data['price'], color='blue', label='Price')
ax1.set_xlabel('Date')
ax1.set_ylabel('Price', color='blue')
ax1.tick_params(axis='y', labelcolor='blue')
ax2 = ax1.twinx()
ax2.plot(data['date'], data['volume'], color='red', label='Volume')
ax2.set_ylabel('Volume', color='red')
ax2.tick_params(axis='y', labelcolor='red')
fig.legend(loc='upper right')
plt.title('Line Plot with Two Y-Axes')
plt.show()
이 예시에서는 y-축이 두 개인 라인 플롯을 만들었습니다. 가격 데이터는 왼쪽 y-축 상에서 파란색으로 플롯되며, 양 데이트는 오른쪽 y-축 상에서 빨간색으로 플롯됩니다.
결론
이러한 코드 예시를 통해 판다스를 사용하여 DataFrame을 플롯하는 방법에 대한 견고한 이해를 갖게 되었을 것입니다. 초기 학습자든 전문가든, 이러한 예제를 사용하여 데이터를 더 잘 이해하고 보다 효과적으로 전달할 수 있는 아름답고 유익하며 매력적인 시각화를 만드는 데 도움이 될 것입니다.
판다스 튜토리얼 더 보기 :