๋ฐ์ดํฐ ๋ถ์ ๊ณผ์ ์์ ์ ์ฒ๋ฆฌ๋ ์ ์ฒด ์์ ์ 50~80%๋ฅผ ์ฐจ์งํ ๋งํผ ์ค์ํฉ๋๋ค.
์ ์ฒ๋ฆฌ๊ฐ ๋์ด ์์ง ์์ ๋ฐ์ดํฐ๋ ๊ณ์ฐ์ด ๋ถ๊ฐ๋ฅํ๊ฑฐ๋ ์๊ฐํ ๊ฒฐ๊ณผ๊ฐ ์๊ณก๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
1. ๋ฐ์ดํฐ ๊ตฌ์กฐ ํ์ ๋ฐ ํ์ (dtype) ์ดํด
๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์จ ํ ๊ฐ์ฅ ๋จผ์ ํด์ผ ํ ์ผ์ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ์ ํ์ ์ ํ์ธํ๋ ๊ฒ.
ํ์ด์ฌ์ด ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ํด์ํ๋์ง ํ์ . ์์นํ์ด์ด์ผ ํฉ๊ณ ๊ณ์ฐ์ด ๊ฐ๋ฅํ๊ณ , ๋ ์งํ์ด์ด์ผ ์์ผ ์ถ์ถ์ด ๊ฐ๋ฅ.
- df.dtypes
์ปฌ๋ผ๋ณ ๋ฐ์ดํฐ ํ์ (dtype) ๋ง ํ ์ค์ฉ ์ ๋ฆฌํด์ ๋ณด์ฌ์ค.
โถ๏ธ "๊ฐ ์ปฌ๋ผ๋ง๋ค ์๋ง์ type์ผ๋ก ๋ผ ์๋?" - ๊ณต๋ฐฑ ํฌํจํด์ ํ๋๋ผ๋ ๋ค๋ฅธ ๊ฐ์ด ์๋ค๋ฉด object(=str)๋ก ํ์๋จ.
โถ๏ธ "์ซ์๋ก ๋ณด์ฌ์ผ ํ ์ปฌ๋ผ์ type์ด object์ธ๊ฐ? (=์ด์๊ฐ)"- ์ธ์ ์ธ๊น?
1) ํ์ ๋ณํ ํ ์ ์ ๋ฐ์๋๋์ง ํ์ธํ ๋
2) ์ฐ์ฐ ์๋ฌ๊ฐ ๋ ๋ ์์ธ ์ฐพ์ ๋
- ์ธ์ ์ธ๊น?
- โญ๏ธ df.info()
์ ์ฒด ํ ๊ฐ์, ์ปฌ๋ผ ๊ฐ์, ์ปฌ๋ผ๋ณ(non-null ๊ฐ์, dtype), ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋- Non-Null Count: ๊ฒฐ์ธก์น ์ ๋ฌด ์ฆ์ ํ์
- Dtype: ํ์ ์ด ๊ธฐ๋์ ๋ค๋ฅธ์ง
- serise์ ๋ฐ์ดํฐ ํ์ ํ์ธ: df["์ปฌ๋ผ๋ช "].dtype

๐ฏ [์ค๋ฌด ์ ์ฒ๋ฆฌ ์์]
df.head() : ๋ฐ์ดํฐํ๋ ์ ์๋จ 5ํ(defult) ํ์ธ
df.shape : ๋ฐ์ดํฐ์ ํ(row)๊ณผ ์ด(column)์ ๊ฐ์ ํ์ธ
df.dtypes : ๊ฐ ์ปฌ๋ผ์ ๋ฐ์ดํฐ ํ์ ์ ํ์ธ
df.info() : ๋ฐ์ดํฐํ๋ ์์ ์ ์ฒด ํ๊ณผ ์ด์ ๊ฐ์, non-null ๊ฐ์, dtypes ๋ฑ ์ข ํฉ ํ์ธ
2. ๋ฐ์ดํฐ ํด๋ฆฌ๋ ๋ฐ ํ์ ๋ณํ (Parsing)
ํ์ค ๋ฐ์ดํฐ๋ "4,500์"์ฒ๋ผ ๊ธฐํธ๊ฐ ์์ฌ ์์ด ๋ฐ๋ก ๊ณ์ฐํ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์.
์ซ์ ์ธ ๋ค๋ฅธ ๋ฐ์ดํฐํ์ ์ ์ ๊ฑฐํ๊ธฐ ์ํ ์์ .
๋ฌธ์์ด ํจ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด (1) ๋ฐ์ดํฐ๋ฅผ str๋ก ํ๋ณํ (2) ์ด์ ๋ฌธ์ ์ ๊ฑฐ (3) ์ซ์๋ก ํ๋ณํ
- str.replace():
๋ฌธ์์ด์์ ํน์ ๋ฌธ์๋ฅผ ์ ๊ฑฐํ๊ฑฐ๋ ๋ฐ๊ฟ.
์ซ์ ์ปฌ๋ผ์ ์์ธ '์', ',' ๋ฑ์ ์ ๊ฑฐํ์ฌ ์ซ์๋ก ๋ณํ ๊ฐ๋ฅํ ์ํ๋ฅผ ๋ง๋ค๊ธฐ ์ํจ. - pd.to_numeric(df['์ปฌ๋ผ'], errors='coerce'):
์ง์ ๋ถํ ๋ฌธ์์ด์ ์ซ์๋ก ํด์ํด ๋ณํํฉ๋๋ค.
astype(int)๋ ํ์์ด ์๋ฒฝํด์ผ ํ์ง๋ง, to_numeric์ ํจ์ฌ ์ ์ฐํ๋ฉฐ ๋ณํ ์คํจ ์ ์๋ฌ๋ฅผ ๋ด์ง ์๊ณ ๊ฒฐ์ธก์น๋ก ์ฒ๋ฆฌํ ์ ์์. - pd.to_datetime(df['์ปฌ๋ผ'], errors='coerce'):
๋ฌธ์์ด ๋ ์ง๋ฅผ ๋ ์ง/์๊ฐ ๊ฐ์ฒด๋ก ๋ณํ.
๋ ์ง ํ์์ด ์์ฌ ์์ ๋๋ format='mixed' ์ต์ ์ ์ฌ์ฉํ๋ฉด ๋ ์ ํํ๊ฒ ๋ณํ๋จ. (ex. 2026-01-09 or 2026/01/19)
โ ๏ธ errors='coerce' ๋ ๋ณํ ์คํจ ๊ฐ์ NaN์ผ๋ก ๋ฐ๊พธ๊ธฐ ๋๋ฌธ์,
๋ณํ ํ์๋ ๋ฐ๋์ ๊ฒฐ์ธก์น ๊ฐ์๋ฅผ ํ์ธํ๊ณ ์ฒ๋ฆฌ ์ ๋ต์ ๊ฒฐ์ ํด์ผ ํฉ๋๋ค.
df['price_num'] = pd.to_numeric(df['price'], errors='coerce') df['price_num'].isna().sum()
3. ๊ฒฐ์ธก์น(Missing Value) ์ฒ๋ฆฌ
๋ฐ์ดํฐ์ ๊ฐ์ด ๋น์ด ์๋(NaN, None, NaT) ์ํ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ณผ์ .
- df.isna().sum():
์ด๋ค ์ปฌ๋ผ์ ๊ฒฐ์ธก์น๊ฐ ๋ช ๊ฐ ์๋์ง ์์ฝํด์ ๋ณด์ฌ์ค.
โถ๏ธ .isna(): ๋ฐ์ดํฐํ๋ ์์์ Null์ True, Non-Null์ False๋ก ํ๊ธฐ
โถ๏ธ .sum(): ์ปฌ๋ผ๋ณ๋ก bool ๊ฐ์ ๋ชจ๋ ํฉํจ. (= Null ๊ฐ์ ํ์ ) - fillna(๊ฐ):
๋ฐ์ดํฐ ๋ถ์์ด๋ ๋ชจ๋ธ ํ์ต์ด ๋ฉ์ถ์ง ์๊ฒ ํ๊ธฐ ์ํด, ๊ฒฐ์ธก์น๋ฅผ ํน์ ๊ฐ(0, ํ๊ท ๊ฐ ๋ฑ)์ผ๋ก ์ฑ์. - dropna():
๊ฒฐ์ธก์น๊ฐ ์๋ ํ์ ์ญ์ . (defult: ํ ์ปฌ๋ผ์ด๋ผ๋ Null์ด๋ฉด ์ญ์ )
df.dropna(subset=["์ปฌ๋ผ"]) : ํน์ ์ปฌ๋ผ์ด Null์ผ ๋๋ง ์ญ์
4. ํ์ ํผ์ฒ(Derived Feature) ์์ฑ
์๋ณธ ๋ฐ์ดํฐ๋ง์ผ๋ก๋ ์ ์ ์๋ ์๋ก์ด ์ธ์ฌ์ดํธ(์: ์์ผ๋ณ ๋งค์ถ ์ถ์ด)๋ฅผ ์ป๊ธฐ ์ํด, ๋ถ์ ๋ชฉ์ ์ ๋ง๊ฒ ๊ธฐ์กด ์ปฌ๋ผ์ ์กฐํฉํด ์๋ก์ด ์ปฌ๋ผ์ ๋ง๋ฆ.
ex) ๋งค์ถ ๊ณ์ฐ: df["sales"] = df["price"] * df["qty"] => ์ปฌ๋ผ๋ผ๋ฆฌ์ ๊ณฑ)
ex) ์์ผ ์ถ์ถ: df["date"].dt.day_name()๋ฅผ ์ฌ์ฉํด ๋ ์ง์์ ์์ผ ์ ๋ณด๋ฅผ ๋ฝ์๋
๋๋ค.
• ์ ์ฐ๋๊ฐ: ์๋ณธ ๋ฐ์ดํฐ๋ง์ผ๋ก๋ ์ ์ ์๋ ์๋ก์ด ์ธ์ฌ์ดํธ(์: ์์ผ๋ณ ๋งค์ถ ์ถ์ด)๋ฅผ ์ป๊ธฐ ์ํจ์
๋๋ค.
5. ๋ฐ์ดํฐ ์ ์ฅ (CSV/Excel/JSON)
์ ๋ฆฌ๊ฐ ๋๋ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๊ฑฐ๋ ๋์ค์ ์ฐ๊ธฐ ์ํด ์ ์ฅ.
- to_csv(..., index=False, encoding='utf-8-sig'):
์ค์ ํฌ์ธํธ: index=False๋ฅผ ์จ์ผ ๋ถํ์ํ ๋ฒํธ๊ฐ ์ ์ฅ๋์ง ์์ผ๋ฉฐ, utf-8-sig ์ธ์ฝ๋ฉ์ ์จ์ผ ์์ ์์ ํ๊ธ์ด ๊นจ์ง์ง ์์ต๋๋ค.
"์ต์ข
df".to_csv(
"sales_clean.csv", #์ ์ฅํ ํ์ผ๋ช
index=False, # ๋ถํ์ํ ์ธ๋ฑ์ค ์ปฌ๋ผ ์ญ์
encoding="utf-8-sig" # ์์
์์ ํ๊ธ ์ ๊นจ์ง
)
- to_json(..., orient='records'):
ํ๋ก ํธ์๋ / API / ์๋ฒ๋ก ๋ฐ์ดํฐ ์ ๋ฌ
๐ก ์ ์ฒ๋ฆฌ ํต์ฌ ํจ์ & ์ฝ๋ ๊ณต์ ์ ๋ฆฌ
โ 1. ๋ฐ์ดํฐ ํ์ธ ๋ฐ ํ์ (Inspection)
- df.head(): ๋ฐ์ดํฐ์ ์๋จ 5ํ์ ์ถ๋ ฅํ์ฌ ์ ๋ฐ์ ์ธ ์๊น์๋ฅผ ํ์ธํฉ๋๋ค.
- df.shape: ๋ฐ์ดํฐ๊ฐ ๋ช ํ, ๋ช ์ด๋ก ๊ตฌ์ฑ๋์๋์ง ํฌ๊ธฐ๋ฅผ ๋ด ๋๋ค.
- df.dtypes: ๊ฐ ์ปฌ๋ผ์ ์๋ฃํ์ ํ์ธํฉ๋๋ค. ์ฃผ์: df.dtype์ ์กด์ฌํ์ง ์์ผ๋ฉฐ ๋ฐ๋์ s๋ฅผ ๋ถ์ฌ์ผ ํฉ๋๋ค.
- df.isna().sum(): ์ด๋ค ์ปฌ๋ผ์ ๊ฒฐ์ธก์น(๋น๊ฐ)๊ฐ ๋ชฐ๋ ค ์๋์ง ํ๋์ ํ์ ํฉ๋๋ค.
โ 2. ํ์ ๋ณํ ๊ณต์ (Conversion)
- ์ง์ ๋ถํ ์ซ์ ์ ๋ฆฌ (Cleaning Pattern): ๋จ์ํ astype(int)๋ฅผ ์ฐ๋ฉด ๊ธฐํธ๋ ๋ฌธ์ ๋๋ฌธ์ ์๋ฌ๊ฐ ๋ ์ ์์ต๋๋ค. ์๋ ํจํด์ด ๊ฐ์ฅ ์์ ํฉ๋๋ค.
- ๋ ์ง ๋ณํ (Datetime Parsing): ํ์์ด ์์ฌ ์๊ฑฐ๋ ์๋ชป๋ ๋ ์ง๊ฐ ์์ ๋ ์ ์ฉํฉ๋๋ค.
- ๋ฒ์ฃผ๊ฐ(Boolean) ํต์ผ: TRUE, True, Y, 1 ๋ฑ ์ ๊ฐ๊ฐ์ธ ๊ฐ์ ํ๋๋ก ํฉ์ณ์ผ ํํฐ๋ง์ด ๊ฐ๋ฅํฉ๋๋ค.