결측값 확인 및 추출
1
| df = pd.read_csv('korean-idol.csv')
|
1. 결측값에 대하여
|
이름 |
그룹 |
소속사 |
성별 |
생년월일 |
키 |
혈액형 |
브랜드평판지수 |
0 |
지민 |
방탄소년단 |
빅히트 |
남자 |
1995-10-13 |
173.6 |
A |
10523260 |
1 |
지드래곤 |
빅뱅 |
YG |
남자 |
1988-08-18 |
177.0 |
A |
9916947 |
2 |
강다니엘 |
NaN |
커넥트 |
남자 |
1996-12-10 |
180.0 |
A |
8273745 |
3 |
뷔 |
방탄소년단 |
빅히트 |
남자 |
1995-12-30 |
178.0 |
AB |
8073501 |
4 |
화사 |
마마무 |
RBW |
여자 |
1995-07-23 |
162.1 |
A |
7650928 |
5 |
정국 |
방탄소년단 |
빅히트 |
남자 |
1997-09-01 |
178.0 |
A |
5208335 |
6 |
민현 |
뉴이스트 |
플레디스 |
남자 |
1995-08-09 |
182.3 |
O |
4989792 |
7 |
소연 |
아이들 |
큐브 |
여자 |
1998-08-26 |
NaN |
B |
4668615 |
8 |
진 |
방탄소년단 |
빅히트 |
남자 |
1992-12-04 |
179.2 |
O |
4570308 |
9 |
하성운 |
핫샷 |
스타크루이엔티 |
남자 |
1994-03-22 |
167.1 |
A |
4036489 |
10 |
태연 |
소녀시대 |
SM |
여자 |
1989-03-09 |
NaN |
A |
3918661 |
11 |
차은우 |
아스트로 |
판타지오 |
남자 |
1997-03-30 |
183.0 |
B |
3506027 |
12 |
백호 |
뉴이스트 |
플레디스 |
남자 |
1995-07-21 |
175.0 |
AB |
3301654 |
13 |
JR |
뉴이스트 |
플레디스 |
남자 |
1995-06-08 |
176.0 |
O |
3274137 |
14 |
슈가 |
방탄소년단 |
빅히트 |
남자 |
1993-03-09 |
174.0 |
O |
2925442 |
2. column별 (비)결측값 개수 확인 – info()
info() 로 각 column별의 결측값(NaN) 개수를 쉽게 확인할 수 있다.
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 15 entries, 0 to 14
Data columns (total 8 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 이름 15 non-null object
1 그룹 14 non-null object
2 소속사 15 non-null object
3 성별 15 non-null object
4 생년월일 15 non-null object
5 키 13 non-null float64
6 혈액형 15 non-null object
7 브랜드평판지수 15 non-null int64
dtypes: float64(1), int64(1), object(6)
memory usage: 1.1+ KB
3. (비)결측값 위치 확인
-
.isna()
-
.isnull()
-
.notna()
-
.notnull()
3-1. 전체 Data
df_name .명령어
(1) 결측값 = True
|
이름 |
그룹 |
소속사 |
성별 |
생년월일 |
키 |
혈액형 |
브랜드평판지수 |
0 |
False |
False |
False |
False |
False |
False |
False |
False |
1 |
False |
False |
False |
False |
False |
False |
False |
False |
2 |
False |
True |
False |
False |
False |
False |
False |
False |
3 |
False |
False |
False |
False |
False |
False |
False |
False |
4 |
False |
False |
False |
False |
False |
False |
False |
False |
5 |
False |
False |
False |
False |
False |
False |
False |
False |
6 |
False |
False |
False |
False |
False |
False |
False |
False |
7 |
False |
False |
False |
False |
False |
True |
False |
False |
8 |
False |
False |
False |
False |
False |
False |
False |
False |
9 |
False |
False |
False |
False |
False |
False |
False |
False |
10 |
False |
False |
False |
False |
False |
True |
False |
False |
11 |
False |
False |
False |
False |
False |
False |
False |
False |
12 |
False |
False |
False |
False |
False |
False |
False |
False |
13 |
False |
False |
False |
False |
False |
False |
False |
False |
14 |
False |
False |
False |
False |
False |
False |
False |
False |
(2) 비결측값 = True
|
이름 |
그룹 |
소속사 |
성별 |
생년월일 |
키 |
혈액형 |
브랜드평판지수 |
0 |
True |
True |
True |
True |
True |
True |
True |
True |
1 |
True |
True |
True |
True |
True |
True |
True |
True |
2 |
True |
False |
True |
True |
True |
True |
True |
True |
3 |
True |
True |
True |
True |
True |
True |
True |
True |
4 |
True |
True |
True |
True |
True |
True |
True |
True |
5 |
True |
True |
True |
True |
True |
True |
True |
True |
6 |
True |
True |
True |
True |
True |
True |
True |
True |
7 |
True |
True |
True |
True |
True |
False |
True |
True |
8 |
True |
True |
True |
True |
True |
True |
True |
True |
9 |
True |
True |
True |
True |
True |
True |
True |
True |
10 |
True |
True |
True |
True |
True |
False |
True |
True |
11 |
True |
True |
True |
True |
True |
True |
True |
True |
12 |
True |
True |
True |
True |
True |
True |
True |
True |
13 |
True |
True |
True |
True |
True |
True |
True |
True |
14 |
True |
True |
True |
True |
True |
True |
True |
True |
3-2. 특정 column
df_name [ ‘col_name’ ] .명령어
(1) 결측값 = True
0 False
1 False
2 True
3 False
4 False
5 False
6 False
7 False
8 False
9 False
10 False
11 False
12 False
13 False
14 False
Name: 그룹, dtype: bool
(2) 비결측값 = True
0 True
1 True
2 False
3 True
4 True
5 True
6 True
7 True
8 True
9 True
10 True
11 True
12 True
13 True
14 True
Name: 그룹, dtype: bool
4. (비)결측값 추출
4-1. 해당 column만 추출
결측값: df_name [ ‘col_name’] [ df_name [ ‘col_name’ ] .isna() / isnull() ]
비결측값: df_name [ ‘col_name’ ] [df_name [ ‘col_name’ ] .notna() / notnull()]
1
| df['그룹'][df['그룹'].isna()]
|
2 NaN
Name: 그룹, dtype: object
1
| df['그룹'][df['그룹'].notnull()]
|
0 방탄소년단
1 빅뱅
3 방탄소년단
4 마마무
5 방탄소년단
6 뉴이스트
7 아이들
8 방탄소년단
9 핫샷
10 소녀시대
11 아스트로
12 뉴이스트
13 뉴이스트
14 방탄소년단
Name: 그룹, dtype: object
4-2. 전체 column 추출
결측값: df_name .loc [df_name [ ‘col_name’ ] .isna() / isnull() ]
비결측값: df_name .loc [df_name ['col_name] .notna() / notnull() ]
|
이름 |
그룹 |
소속사 |
성별 |
생년월일 |
키 |
혈액형 |
브랜드평판지수 |
2 |
강다니엘 |
NaN |
커넥트 |
남자 |
1996-12-10 |
180.0 |
A |
8273745 |
1
| df.loc[df['그룹'].notnull()]
|
|
이름 |
그룹 |
소속사 |
성별 |
생년월일 |
키 |
혈액형 |
브랜드평판지수 |
0 |
지민 |
방탄소년단 |
빅히트 |
남자 |
1995-10-13 |
173.6 |
A |
10523260 |
1 |
지드래곤 |
빅뱅 |
YG |
남자 |
1988-08-18 |
177.0 |
A |
9916947 |
3 |
뷔 |
방탄소년단 |
빅히트 |
남자 |
1995-12-30 |
178.0 |
AB |
8073501 |
4 |
화사 |
마마무 |
RBW |
여자 |
1995-07-23 |
162.1 |
A |
7650928 |
5 |
정국 |
방탄소년단 |
빅히트 |
남자 |
1997-09-01 |
178.0 |
A |
5208335 |
6 |
민현 |
뉴이스트 |
플레디스 |
남자 |
1995-08-09 |
182.3 |
O |
4989792 |
7 |
소연 |
아이들 |
큐브 |
여자 |
1998-08-26 |
NaN |
B |
4668615 |
8 |
진 |
방탄소년단 |
빅히트 |
남자 |
1992-12-04 |
179.2 |
O |
4570308 |
9 |
하성운 |
핫샷 |
스타크루이엔티 |
남자 |
1994-03-22 |
167.1 |
A |
4036489 |
10 |
태연 |
소녀시대 |
SM |
여자 |
1989-03-09 |
NaN |
A |
3918661 |
11 |
차은우 |
아스트로 |
판타지오 |
남자 |
1997-03-30 |
183.0 |
B |
3506027 |
12 |
백호 |
뉴이스트 |
플레디스 |
남자 |
1995-07-21 |
175.0 |
AB |
3301654 |
13 |
JR |
뉴이스트 |
플레디스 |
남자 |
1995-06-08 |
176.0 |
O |
3274137 |
14 |
슈가 |
방탄소년단 |
빅히트 |
남자 |
1993-03-09 |
174.0 |
O |
2925442 |
4-3. 지정한 column 추출
결측값: df_name .loc [df_name [ ‘na_col_name’ ] .isna() / isnull() , [‘col_name1’, ‘col_name2’, …]]
비결측값: df_name .loc [df_name ['na_col_name] .notna() / notnull() , [‘col_name1’, ‘col_name2’, …]]
1
| df.loc[df['그룹'].isna(), ['이름', '소속사']]
|
1
| df.loc[df['그룹'].notnull(), ['이름', '소속사']]
|
|
이름 |
소속사 |
0 |
지민 |
빅히트 |
1 |
지드래곤 |
YG |
3 |
뷔 |
빅히트 |
4 |
화사 |
RBW |
5 |
정국 |
빅히트 |
6 |
민현 |
플레디스 |
7 |
소연 |
큐브 |
8 |
진 |
빅히트 |
9 |
하성운 |
스타크루이엔티 |
10 |
태연 |
SM |
11 |
차은우 |
판타지오 |
12 |
백호 |
플레디스 |
13 |
JR |
플레디스 |
14 |
슈가 |
빅히트 |