2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

파이썬 pandas에서 결측치가 있는 데이터를 시각화하는 방법은?

_____
Q1: pandas에서 결측치가 있는 데이터를 시각화하려면 어떤 방법이 있나요?
A1: pandas 자체에는 결측치 시각화 전용 함수가 없지만, matplotlib, seaborn, missingno 같은 라이브러리와 함께 사용하면 결측치를 쉽게 시각화할 수 있습니다.

---

Q2: pandas와 matplotlib만으로 결측치를 어떻게 시각화할 수 있나요?
A2: 다음과 같이 각 값이 결측치인지 아닌지를 색상으로 표시하는 히트맵 형태로 시각화할 수 있습니다.

```python
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({
'A': [1, None, 3],
'B': [4, 5, None]
})

plt.imshow(df.isnull(), cmap='viridis', aspect='auto')
plt.xlabel('Columns')
plt.ylabel('Rows')
plt.title('Missing Values Heatmap')
plt.colorbar(label='Missing (True=1, False=0)')
plt.show()
```

---

Q3: seaborn 라이브러리를 활용해 결측치를 시각화할 수 있나요?
A3: seaborn의 heatmap 함수에 결측치 여부 데이터를 넣어 색상으로 표시할 수 있습니다.

```python
import seaborn as sns

sns.heatmap(df.isnull(), cbar=False, yticklabels=False, cmap='viridis')
plt.title('Missing Values Heatmap (seaborn)')
plt.show()
```
---

Q4: missingno 라이브러리를 사용하면 어떤 장점이 있나요?
A4: missingno는 결측치 분석 전용 시각화 툴로, 결측치의 분포, 패턴, 상관관계 등을 직관적으로 탐색할 수 있는 다양한 그래프를 제공합니다.

```python
import missingno as msno

msno.matrix(df)
plt.show()

msno.bar(df)
plt.show()

msno.heatmap(df)
plt.show()
```

---

Q5: 결측치 시각화 시 어떤 컬러맵을 사용하면 좋나요?
A5: 결측치 여부를 명확하게 구분하려면 대비가 큰 컬러맵(예: `viridis`, `magma`, `coolwarm`)을 사용하면 좋습니다.

---

Q6: 대용량 데이터프레임의 결측치를 시각화할 때 주의할 점은?
A6: 너무 큰 데이터는 시각화가 어렵거나 느려질 수 있으므로 샘플링하거나 특정 컬럼/행만 선택해 시각화하는 게 좋습니다.

---

Q7: pandas 데이터프레임에서 결측치 위치를 빠르게 확인하는 간단한 방법은?
A7: `df.isnull()` 또는 `df.isna()`로 결측치 불리언 마스크를 만들고, 앞서 설명한 히트맵 등으로 시각화할 수 있습니다.

---

요약:
- pandas만으로는 직접적 시각화 도구가 제한적이므로 matplotlib/seaborn으로 `df.isnull()` 결과를 heatmap 형태로 그린다.
- missingno 라이브러리는 결측치 분석 및 시각화에 최적화되어 있어 추천된다.
- 컬러맵 선정, 데이터 크기 고려도 중요하다.
Pandas와 같은 데이터 분석 라이브러리를 사용하여 결측치가 있는 데이터를 시각화하는 방법은 여러 가지가 있습니다.

결측치를 시각화하는 것은 데이터의 품질을 파악하고 필요한 전처리를 수행하는 데 매우 중요합니다.

다음은 Python의 Pandas와 Matplotlib, Seaborn 라이브러리를 사용하여 결측치를 시각화하는 방법에 대한 몇 가지 예시입니다.

1. 데이터셋 준비하기 먼저, 결측치를 포함한 Pandas 데이터프레임을 준비합니다.

```python import pandas as pd import numpy as np 예시 데이터프레임 생성 data = { 'A': [1, 2, np.nan, 4], 'B': [np.nan, 2, np.nan, 4], 'C': [1, 2, 3, 4] } df = pd.DataFrame(data) print(df) ```

2. 결측치 개수 시각화 a. NaN 비율을 시각화하기 결측치의 비율을 시각화하기 위해 `matplotlib`를 사용할 수 있습니다.

```python import matplotlib.pyplot as plt 각 열의 결측치 비율 계산 missing_percentage = df.isnull().mean() * 100 시각화 missing_percentage.plot(kind='bar', color='skyblue') plt.title('Missing Data Percentage by Column') plt.xlabel('Columns') plt.ylabel('Percentage of Missing Data') plt.show() ``` b. 히트맵으로 결측치 시각화 (Seaborn 사용) Seaborn 라이브러리를 사용하여 결측치를 히트맵으로 시각화할 수 있습니다.

```python import seaborn as sns 결측치 히트맵 plt.figure(figsize=(8,

4)) sns.heatmap(df.isnull(), cbar=True, cmap='viridis') plt.title('Missing Values Heatmap') plt.xlabel('Columns') plt.ylabel('Index') plt.show() ```

3. 결측치가 있는 행 필터링 및 시각화 결측치가 있는 행만 필터링하여 시각화하는 방법입니다.

```python 결측치가 있는 행 필터링 missing_data = df[df.isnull().any(axis=1)] 결측치가 있는 행 수 시각화 plt.figure(figsize=(10,

5)) missing_data.plot(kind='bar', alpha=0.

7) plt.title('Rows with Missing Values') plt.xlabel('Row Index') plt.ylabel('Values') plt.show() ```

4. 결측치를 다른 값으로 대체하고 비교하기 결측치를 특정 값으로 대체한 후의 데이터셋과 비교할 수도 있습니다.

```python 결측치를 0으로 대체 df_filled = df.fillna(0) 시각화 plt.figure(figsize=(12,

6)) plt.subplot(1, 2, 1) sns.heatmap(df.isnull(), cbar=False, cmap='viridis') plt.title("Original Data with Missing Values") plt.subplot(1, 2,

2) sns.heatmap(df_filled.isnull(), cbar=False, cmap='viridis') plt.title("Data After Filling Missing Values") plt.show() ``` 결론 Pandas와 Matplotlib, Seaborn를 사용하여 결측치를 효과적으로 시각화할 수 있습니다.

이러한 시각화를 통해 데이터의 결측치 분포와 각 열의 결측치 특성을 이해하고, 필요한 전처리를 보다 명확히 할 수 있습니다.

결측치 처리 방법에 따라 이후의 데이터 분석 결과는 크게 달라질 수 있으므로, 적절한 시각화를 통해 정보를 신중하게 판단하는 것이 중요합니다.

작성자: 정재영 [비회원] | 작성일자: 1년 전 2025-02-10 05:31:28
조회수: 183 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.