Python Library/Pandas

[Pandas - Python] Computing Indicator/Dummy Variables - get_dummies() (더미 데이터 만들기)

바보1 2022. 6. 14. 01:50

Computing Indicator/Dummy Variables - get_dummies()

 

왜 더미 데이터를 만들까요?

 

머신러닝에 데이터를 넣기 위해서는 수치화가 필수입니다.

머신러닝은 월요일, 화요일 같은 문자열을 모르기 때문입니다.

 

만약에 월요일이 1이고, 화요일이 2, 수요일이 3이라고 가정해봅시다.

월요일과 화요일, 수요일은 그 어떤 연관성도 없지만, 이를 수치화하면 1 + 2 = 3이라는 연관성이 생기게 됩니다.

월요일 + 화요일 = 수요일? 원래 데이터는 전혀 연관성이 없는데도 불구하고, 이를 수치화 시키면 연관성이 생겨버리게 됩니다.

 

이때 더미 데이터를 만듬으로써 그러한 문제를 방지해줍니다.

즉 One-Hot Encoding을 하는 것과 마찬가지라고 보면 될 것 같습니다.

 

df = pd.DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'b'],
                   'data1': range(6)})
pd.get_dummies(df['key'])


	a	b	c
0	0	1	0
1	0	1	0
2	1	0	0
3	0	0	1
4	1	0	0
5	0	1	0

이처럼 a는 100, b는 010, c는 001이 됩니다.

 

이때 df는

df

	key	data1
0	b	0
1	b	1
2	a	2
3	c	3
4	a	4
5	b	5
dummies = pd.get_dummies(df['key'], prefix='key')
df_with_dummy = df[['data1']].join(dummies)
df_with_dummy


	data1	key_a	key_b	key_c
0	0	0	1	0
1	1	0	1	0
2	2	1	0	0
3	3	0	0	1
4	4	1	0	0
5	5	0	1	0

쉽게 이해가 되시나요?