์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„(25.12.01~)

๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ/์‹œ๊ฐํ™” 1- Pandas๋กœ CSV/Excel/JSON ๋‹ค๋ฃจ๊ธฐ

0๏ธโƒฃ 2026. 1. 19. 23:53

๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ณผ์ •์—์„œ ์ „์ฒ˜๋ฆฌ๋Š” ์ „์ฒด ์ž‘์—…์˜ 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 ๋“ฑ ์ œ๊ฐ๊ฐ์ธ ๊ฐ’์„ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์•ผ ํ•„ํ„ฐ๋ง์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

โœ… 3. ๊ฒฐ์ธก์น˜(Missing Value) ์ฒ˜๋ฆฌ ์ „๋žต

๊ฒฐ์ธก์น˜๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ๋ถ„์„ ๊ฒฐ๊ณผ๊ฐ€ ์™œ๊ณก๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋Œ€์ฒดํ•˜๊ธฐ (fillna): ๋ฐ์ดํ„ฐ ์–‘์„ ์œ ์ง€ํ•ด์•ผ ํ•  ๋•Œ ์”๋‹ˆ๋‹ค.
    โ—ฆ df["price"].fillna(0) : ๋ถ„์„ ๋ชฉ์ ์— ๋”ฐ๋ผ 0์ด๋‚˜ ํ‰๊ท ๊ฐ’์œผ๋กœ ์ฑ„์›๋‹ˆ๋‹ค.
์‚ญ์ œํ•˜๊ธฐ (dropna): ๋ฐ์ดํ„ฐ๊ฐ€ ์ถฉ๋ถ„ํ•˜๊ฑฐ๋‚˜ ๊ฒฐ์ธก์น˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์„ ๋•Œ ์”๋‹ˆ๋‹ค.
    โ—ฆ df.dropna(subset=["์ปฌ๋Ÿผ๋ช…"]): ํŠน์ • ์ปฌ๋Ÿผ์ด ๋น„์–ด ์žˆ๋Š” ํ–‰๋งŒ ๊ณจ๋ผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
ํ•ต์‹ฌ ์˜ต์…˜ errors="coerce": ๋ณ€ํ™˜ ์‹คํŒจ ์‹œ ์—๋Ÿฌ๋กœ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  NaN(๊ฒฐ์ธก์น˜)์œผ๋กœ ํ‘œ์‹œํ•˜์—ฌ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

โœ… 4. ํŒŒ์ผ ์ €์žฅ ๋ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ (I/O)

๋ถ„์„ ๊ฒฐ๊ณผ๋ฌผ์„ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•œ ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.
CSV ์ €์žฅ: df.to_csv("์ด๋ฆ„.csv", index=False, encoding="utf-8-sig")
    โ—ฆ index=False: ๋ถˆํ•„์š”ํ•œ ๋ฒˆํ˜ธ ์—ด์„ ์ €์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    โ—ฆ utf-8-sig: ์—‘์…€์—์„œ ํ•œ๊ธ€์ด ๊นจ์ง€๋Š” ํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
JSON ์ €์žฅ: df.to_json("์ด๋ฆ„.json", orient="records", force_ascii=False)
    โ—ฆ orient="records": ํ–‰ ๋‹จ์œ„ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ์ €์žฅ๋˜์–ด ์›น์ด๋‚˜ API ํ™˜๊ฒฝ์—์„œ ์“ฐ๊ธฐ ์ข‹์Šต๋‹ˆ๋‹ค.
Excel ์ €์žฅ: df.to_excel("์ด๋ฆ„.xlsx", index=False) (๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ openpyxl ์„ค์น˜ ํ•„์š”).

โœ… 5. ์‹œ๊ฐํ™” (Validation)

์‹œ๊ฐํ™”๋Š” ์˜ˆ์˜๊ฒŒ ๊ทธ๋ฆฌ๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฐ์ดํ„ฐ์˜ ์ด์ƒํ•จ์„ ์ฐพ๋Š” ๊ฒ€์ฆ ๋„๊ตฌ๋กœ ๋จผ์ € ํ™œ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋ถ„์„ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ํ™•์ธ:
๋ฐ์ดํ„ฐ ๋ถ„ํฌ ํ™•์ธ: df["sales"].hist()๋ฅผ ํ†ตํ•ด 999,999 ๊ฐ™์€ ์ด์ƒ์น˜๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
๊ฒฐ์ธก์น˜ ํŒจํ„ด ํ™•์ธ: df.isna().sum().plot(kind="bar")๋กœ ์–ด๋–ค ์ปฌ๋Ÿผ์—์„œ ์ˆ˜์ง‘ ์˜ค๋ฅ˜๊ฐ€ ๋งŽ์€์ง€ ๋ด…๋‹ˆ๋‹ค.