03-050. ์ค๋ณต ๋ฐ์ดํฐ ์ฒ๋ฆฌ
์ค๋ณต ๋ฐ์ดํฐ ์ฒ๋ฆฌโ
์ค๋ณต ๋ฐ์ดํฐ๋ ๊ฐ์ ์ ๋ณด๊ฐ ์ฌ๋ฌ ๋ฒ ๊ธฐ๋ก๋ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋ค. ์ค๋ณต ๋ฐ์ดํฐ๋ ํด์์ ์๊ณกํ๋ค.
์ค๋ณต ๋ฐ์ดํฐ ์์
๊ณ ๊ฐID | ์ด๋ฆ | ๋์ด | ์ฑ๋ณ | ์ฐ๋ฝ์ฒ |
---|---|---|---|---|
C001 | ํ๊ธธ๋ | 35 | ๋จ | 010-1234-5678 |
C002 | ๊น๋ฏธ์ | 28 | ์ฌ | 010-9876-5432 |
C001 | ํ๊ธธ๋ | 35 | ๋จ | 010-1234-5678 |
C003 | ์ด์คํธ | 42 | ๋จ | 010-5555-1234 |
์ด๋ฆ โํ๊ธธ๋โ์ด ์๋ ํ 2๊ฐ๋ ์ค๋ณต์ด๋ค. ์์์ ์ผ๋ก ๋๋ช ์ด์ธ์ด ์กด์ฌํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฆ์ ์ค๋ณต์ ๊ฐ๋ฅํ์ง๋ง ๊ณ ๊ฐID์ ์ ํ๋ฒํธ๊น์ง ๋์ผํ ๊ฒ์ ์๋ชป๋ ๊ฒ์ด๋ค. ํน๋ณํ ์ด์ ๊ฐ ์๋ค๋ฉด ๋ฐ์ดํฐ ๋ถ์์ ํ ๋๋ ์ค๋ณต์ ์ ๊ฑฐํด์ผ ํ๋ค.
์ฝ๋
import pandas as pd
# ์์ ๋ฐ์ดํฐ ์์ฑ
data = {
'๊ณ ๊ฐID': ['C001', 'C002', 'C001', 'C003'],
'์ด๋ฆ': ['ํ๊ธธ๋', '๊น๋ฏธ์', 'ํ๊ธธ๋', '์ด์คํธ'],
'๋์ด': [35, 28, 35, 42],
'์ฑ๋ณ': ['๋จ', '์ฌ', '๋จ', '๋จ'],
'์ฐ๋ฝ์ฒ': ['010-1234-5678', '010-9876-5432', '010-1234-5678', '010-5555-1234']
}
df = pd.DataFrame(data)
print("์ค๋ณต ํ ๊ฐ์:", df.duplicated().sum())
# ์ค๋ณต ๋ฐ์ดํฐ ์ ๊ฑฐ
df_clean = df.drop_duplicates()
# ํน์ ์ปฌ๋ผ ๊ธฐ์ค์ผ๋ก ์ค๋ณต ์ ๊ฑฐ
df_clean = df.drop_duplicates(subset=['๊ณ ๊ฐID'])
# ์ค๋ณต ๋ฐ์ดํฐ ์ ์ง ์ต์
(์ฒซ ๋ฒ์งธ ๋๋ ๋ง์ง๋ง ๋ฐ์ดํฐ ์ ์ง)
df_first = df.drop_duplicates(keep='first') # ์ฒซ ๋ฒ์งธ ์ ์ง
df_last = df.drop_duplicates(keep='last') # ๋ง์ง๋ง ์ ์ง
print("์ค๋ณต ์ ๊ฑฐํ ํ ๊ฐ์:", df_last.shape[0])
print("์ค๋ณต ์ ๊ฑฐ๋ ๋ฐ์ดํฐ:")
print(df_last)
์คํ ๊ฒฐ๊ณผ
์ค๋ณต ํ ๊ฐ์: 1
์ค๋ณต ์ ๊ฑฐํ ํ ๊ฐ์: 3
์ค๋ณต ์ ๊ฑฐ๋ ๋ฐ์ดํฐ:
๊ณ ๊ฐID ์ด๋ฆ ๋์ด ์ฑ๋ณ ์ฐ๋ฝ์ฒ
1 C002 ๊น๋ฏธ์ 28 ์ฌ 010-9876-5432
2 C001 ํ๊ธธ๋ 35 ๋จ 010-1234-5678
3 C003 ์ด์คํธ 42 ๋จ 010-5555-1234
Pandas์ duplicated() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ค๋ณต๋ ๊ฐฏ์๋ฅผ ํ์ธํ ์ ์๋ค. drop_duplicates() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ค๋ณต๋ ํ์ ์ ๊ฑฐํ ์ ์๋ค. ์ค๋ณต์ ํ ์ ์ฒด๋ก ํ๋ ๊ฒ์ ์ค๋ฌด์์๋ ์ ์ฐ์ง ์๊ณ ๋ฐ์ดํฐ์ ํน์ ์ปฌ๋ผ์ ์ค๋ณต์ด ์๋์ง ํ์ธํ๋ค. ์์ ๋ฐ์ดํฐ์์๋ ๋ ผ๋ฆฌ์ ์ผ๋ก ์ค๋ณต์ด ๋๋ฉด ์๋๋ ๊ณ ๊ฐID, ์ฐ๋ต์ฒ๊ฐ ์ค๋ณต ์ฒดํฌ์ ๋์์ด๋ค. ์์ ์ฝ๋์์๋ subset์ ํ๋ผ๋ฏธํฐ๋ก ์ค์ ๊ณ ๊ฐID์ ์ฐ๋ฝ์ฒ๋ฅผ ์ค๋ณต ์ฒดํฌ์ ๋์์ผ๋ก ์ง์ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ค๋ณต์ ์ ๊ฑฐํ ์๋ฅผ ๊ณ ์ ์์์(Cardinality, ์นด๋๋๋ฆฌํฐ)๋ผ๊ณ ํ๋๋ฐ ๋ฐ์ดํฐ ๋ถ์๊ณผ ๊ธฐ๊ณํ์ต์์๋ ์ค์ํ๊ฒ ๋ค๋ฃจ๋ ๋ฌธ์ ๋ค. ๋ฐ์ดํฐ์ ์ค๋ณต์ ์กฐ์ฌํ๊ฑฐ๋ ์ ๊ฑฐํ๋ฉด์ ์ค๋ณต์จ์ด ์ผ๋ง์ธ์ง ํ์ธํด ๋๋ ๊ฒ๋ ์ค์ํ๋ค.