반응형
파이썬 nan 값 시각화 missingno.matrix¶
In [ ]:
!pip install missingno
- msno.matrix 미싱데이터를 시각화 해주는 함수입니다.
- 데이터가 많은 경우 미싱데이터이 수준을 보기 위해 많이 사용 됩니다
- 다만 미싱 데이터를 그림으로 보여주기 때문에 코드 돌아가는 속도가 빠르지 않습니다.
nan 값이 없는 경우¶
In [1]:
import pandas as pd
import numpy as np
import missingno as msno
import matplotlib.pyplot as plt
- nan 값이 없는 성적데이터 생성
In [2]:
from random import *
import names
import os
os.makedirs("sample_data", exist_ok=True)
age = [randint(16, 18) for i in range(0, 1115)]
gender = [choice(["male", "female"]) for i in range(0, 1115)]
name = [names.get_first_name(gender=g) for g in gender]
math = [randint(60, 100) for i in range(0, 1115)]
english = [randint(60, 100) for i in range(0, 1115)]
dic_list = {"age" : age, "gender" : gender, "name" : name, "math" : math, "enlish" : english}
- 생성된 데이터 정보
In [3]:
grade = pd.DataFrame(dic_list)
print("데이터 상위 5줄")
print(grade.head(5))
print("")
print("데이터 shape")
print("index 길이 : ", grade.shape[0], ", 컬럼 갯수 : ", grade.shape[1])
데이터 상위 5줄 age gender name math enlish 0 18 female Lashawn 63 73 1 18 female Stacy 79 97 2 18 male James 71 92 3 17 male Robert 79 72 4 16 female Renee 82 72 데이터 shape index 길이 : 1115 , 컬럼 갯수 : 5
- nan 값 시각화
In [4]:
msno.matrix(grade)
plt.show()
nan 값이 있는 경우¶
- nan 값이 있는 성적데이터 생성
- 수학(math) 성적의 경우 25간격으로 nan 값을 생성하였다.
- 영어(enlish) 성적의 경우 처음부터 100번째 줄 사이에서 무작위로 nan을 생성하였다.
In [5]:
from random import *
import names
import os
os.makedirs("sample_data", exist_ok=True)
age = [randint(16, 18) for i in range(0, 1115)]
gender = [choice(["male", "female"]) for i in range(0, 1115)]
name = [names.get_first_name(gender=g) for g in gender]
math = [randint(60, 100) if i%25 != 0 else np.nan for i in range(0, 1115)]
ran_list = []
for i in range(0, 100):
while len(ran_list) < 65:
if randint(1, 100) not in ran_list :
ran_list.append(randint(1, 100))
print(len(ran_list))
english = [randint(60, 100) if i not in sorted(ran_list) else np.nan for i in range(0, 1115)]
dic_list = {"age" : age, "gender" : gender, "name" : name, "math" : math, "enlish" : english}
65
In [6]:
grade = pd.DataFrame(dic_list)
print("데이터 상위 5줄")
print(grade.head(5))
print("")
print("데이터 shape")
print("index 길이 : ", grade.shape[0], ", 컬럼 갯수 : ", grade.shape[1])
데이터 상위 5줄 age gender name math enlish 0 18 male Scott NaN 74.0 1 18 female Addie 71.0 NaN 2 18 female Rebecca 94.0 60.0 3 18 female Jennifer 63.0 72.0 4 18 male Walton 97.0 91.0 데이터 shape index 길이 : 1115 , 컬럼 갯수 : 5
In [7]:
msno.matrix(grade)
plt.show()
반응형
'python' 카테고리의 다른 글
파이썬 이미지 자르기 (0) | 2023.08.18 |
---|---|
파이썬 정규분포 생성 및 pdf 산출 (0) | 2023.08.15 |
넘파이 행렬 분배법칙 (0) | 2023.08.15 |
주피터노트북에 이미지 업로드 기능 넣기 (0) | 2023.08.15 |
파이썬 엘레먼트 와이즈 및 브로드케스팅 연산 (0) | 2023.08.13 |
댓글