[Notice] [pandas_practice_4]
DataFrame load
import pandas as pd
import numpy as np
df = pd.read_csv('http://bit.ly/ds-korean-idol')
Select by data type(select_dtypes)
<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
1-1 Select ‘object’ type in column
df.select_dtypes(include = 'object')
|
이름 |
그룹 |
소속사 |
성별 |
생년월일 |
혈액형 |
0 |
지민 |
방탄소년단 |
빅히트 |
남자 |
1995-10-13 |
A |
1 |
지드래곤 |
빅뱅 |
YG |
남자 |
1988-08-18 |
A |
2 |
강다니엘 |
NaN |
커넥트 |
남자 |
1996-12-10 |
A |
3 |
뷔 |
방탄소년단 |
빅히트 |
남자 |
1995-12-30 |
AB |
4 |
화사 |
마마무 |
RBW |
여자 |
1995-07-23 |
A |
5 |
정국 |
방탄소년단 |
빅히트 |
남자 |
1997-09-01 |
A |
6 |
민현 |
뉴이스트 |
플레디스 |
남자 |
1995-08-09 |
O |
7 |
소연 |
아이들 |
큐브 |
여자 |
1998-08-26 |
B |
8 |
진 |
방탄소년단 |
빅히트 |
남자 |
1992-12-04 |
O |
9 |
하성운 |
핫샷 |
스타크루이엔티 |
남자 |
1994-03-22 |
A |
10 |
태연 |
소녀시대 |
SM |
여자 |
1989-03-09 |
A |
11 |
차은우 |
아스트로 |
판타지오 |
남자 |
1997-03-30 |
B |
12 |
백호 |
뉴이스트 |
플레디스 |
남자 |
1995-07-21 |
AB |
13 |
JR |
뉴이스트 |
플레디스 |
남자 |
1995-06-08 |
O |
14 |
슈가 |
방탄소년단 |
빅히트 |
남자 |
1993-03-09 |
O |
df.select_dtypes(exclude = 'object')
|
키 |
브랜드평판지수 |
0 |
173.6 |
10523260 |
1 |
177.0 |
9916947 |
2 |
180.0 |
8273745 |
3 |
178.0 |
8073501 |
4 |
162.1 |
7650928 |
5 |
178.0 |
5208335 |
6 |
182.3 |
4989792 |
7 |
NaN |
4668615 |
8 |
179.2 |
4570308 |
9 |
167.1 |
4036489 |
10 |
NaN |
3918661 |
11 |
183.0 |
3506027 |
12 |
175.0 |
3301654 |
13 |
176.0 |
3274137 |
14 |
174.0 |
2925442 |
num_cols = df.select_dtypes(exclude = 'object').columns
|
키 |
브랜드평판지수 |
0 |
173.6 |
10523260 |
1 |
177.0 |
9916947 |
2 |
180.0 |
8273745 |
3 |
178.0 |
8073501 |
4 |
162.1 |
7650928 |
5 |
178.0 |
5208335 |
6 |
182.3 |
4989792 |
7 |
NaN |
4668615 |
8 |
179.2 |
4570308 |
9 |
167.1 |
4036489 |
10 |
NaN |
3918661 |
11 |
183.0 |
3506027 |
12 |
175.0 |
3301654 |
13 |
176.0 |
3274137 |
14 |
174.0 |
2925442 |
one-hot-encoding
|
이름 |
그룹 |
소속사 |
성별 |
생년월일 |
키 |
혈액형 |
브랜드평판지수 |
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 |
blood_map = {
'A' : 0,
'B': 1,
'AB': 2,
'0': 3
}
df['혈액형_code'] = df['혈액형'].map(blood_map)
|
이름 |
그룹 |
소속사 |
성별 |
생년월일 |
키 |
혈액형 |
브랜드평판지수 |
혈액형_code |
0 |
지민 |
방탄소년단 |
빅히트 |
남자 |
1995-10-13 |
173.6 |
A |
10523260 |
0.0 |
1 |
지드래곤 |
빅뱅 |
YG |
남자 |
1988-08-18 |
177.0 |
A |
9916947 |
0.0 |
2 |
강다니엘 |
NaN |
커넥트 |
남자 |
1996-12-10 |
180.0 |
A |
8273745 |
0.0 |
3 |
뷔 |
방탄소년단 |
빅히트 |
남자 |
1995-12-30 |
178.0 |
AB |
8073501 |
2.0 |
4 |
화사 |
마마무 |
RBW |
여자 |
1995-07-23 |
162.1 |
A |
7650928 |
0.0 |
df['혈액형_code'].value_counts()
0.0 7
2.0 2
1.0 2
Name: 혈액형_code, dtype: int64
0 0.0
1 0.0
2 0.0
3 2.0
4 0.0
5 0.0
6 NaN
7 1.0
8 NaN
9 0.0
10 0.0
11 1.0
12 2.0
13 NaN
14 NaN
Name: 혈액형_code, dtype: float64
pd.get_dummies(df['혈액형_code'])
|
0.0 |
1.0 |
2.0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
2 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
4 |
1 |
0 |
0 |
5 |
1 |
0 |
0 |
6 |
0 |
0 |
0 |
7 |
0 |
1 |
0 |
8 |
0 |
0 |
0 |
9 |
1 |
0 |
0 |
10 |
1 |
0 |
0 |
11 |
0 |
1 |
0 |
12 |
0 |
0 |
1 |
13 |
0 |
0 |
0 |
14 |
0 |
0 |
0 |
#use prefix
pd.get_dummies(df['혈액형_code'], prefix = '혈액형')
|
혈액형_0.0 |
혈액형_1.0 |
혈액형_2.0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
2 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
4 |
1 |
0 |
0 |
5 |
1 |
0 |
0 |
6 |
0 |
0 |
0 |
7 |
0 |
1 |
0 |
8 |
0 |
0 |
0 |
9 |
1 |
0 |
0 |
10 |
1 |
0 |
0 |
11 |
0 |
1 |
0 |
12 |
0 |
0 |
1 |
13 |
0 |
0 |
0 |
14 |
0 |
0 |
0 |
댓글남기기