๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป Programming/Python

[pandas] ํŠน์ • ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด ๊ณต๋ฐฑ์ธ ํ–‰์„ ์ œ์™ธํ•˜๋Š” ๋ฐฉ๋ฒ• | dropna

by ๋ญ…์ฆค 2023. 11. 17.
๋ฐ˜์‘ํ˜•


ํŒ๋‹ค์Šค์˜ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์—์„œ ํŠน์ • ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด ๊ณต๋ฐฑ(๋˜๋Š” ๋นˆ ๋ฌธ์ž์—ด)์ธ ํ–‰์„ ์ œ์™ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๋˜๋Š”์ง€ ์•Œ์•„๋ณด์ž.

 

 

ํŠน์ • ์ปฌ๋Ÿผ์˜ ๊ณต๋ฐฑ์ธ ํ–‰ ์ œ๊ฑฐ

import pandas as pd

# ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์ƒ์„ฑ
data = {'A': [1, 2, 3, 4],
        'B': ['apple', 'banana', '', 'orange']}
df = pd.DataFrame(data)

# 'B' ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด ๊ณต๋ฐฑ์ธ ํ–‰ ์ œ์™ธ
df_no_empty_values = df[df['B'].str.strip() != '']

# ๊ฒฐ๊ณผ ์ถœ๋ ฅ
print(df_no_empty_values)
  • ์œ„ ์ฝ”๋“œ์—์„œ df['B'].str.strip() != '' ๋ถ€๋ถ„์€ 'B' ์ปฌ๋Ÿผ์˜ ๊ฐ ๊ฐ’์— ๋Œ€ํ•ด ์ขŒ์šฐ์˜ ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•˜๊ณ  ๋นˆ ๋ฌธ์ž์—ด๊ณผ ๋น„๊ตํ•˜์—ฌ ๊ณต๋ฐฑ์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธ ๊ฐ€๋Šฅ
  • ์ด ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ํ•„ํ„ฐ๋งํ•˜๋ฉด 'B' ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด ๊ณต๋ฐฑ์ธ ํ–‰์ด ์ œ์™ธ๋œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

 

๋ชจ๋“  ์ปฌ๋Ÿผ์˜ ๊ณต๋ฐฑ์ธ ํ–‰ ์ œ๊ฑฐ

import pandas as pd

# ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ ์ƒ์„ฑ
data = {'A': [1, 2, 3, 4],
        'B': ['apple', 'banana', '', 'orange']}
df = pd.DataFrame(data)

# ๊ณต๋ฐฑ์„ NaN์œผ๋กœ ๋Œ€์ฒด
df = df.replace('', pd.NA)

# NaN์ด ์žˆ๋Š” ํ–‰ ์ œ๊ฑฐ
df_no_empty_values = df.dropna()

# ๊ฒฐ๊ณผ ์ถœ๋ ฅ
print(df_no_empty_values)
  • dropna() ํ•จ์ˆ˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ NaN(Not a Number) ๊ฐ’์ด ์žˆ๋Š” ๋ชจ๋“  ํ–‰์„ ์ œ๊ฑฐํ•œ๋‹ค.
  • ๋งŒ์•ฝ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์—์„œ ๊ณต๋ฐฑ์ด๋‚˜ ๋นˆ ๋ฌธ์ž์—ด์ด ์žˆ๋Š” ํ–‰์„ dropna() ํ•จ์ˆ˜๋กœ ์ œ๊ฑฐํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, replace() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๋ฐฑ์„ NaN์œผ๋กœ ๋ณ€๊ฒฝํ•œ ํ›„์— dropna()๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํŠน์ • ์ปฌ๋Ÿผ์—์„œ ๊ณต๋ฐฑ์ด ์žˆ๋Š” ํ–‰๋งŒ ์ œ๊ฑฐํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ํŠน์ • ์ปฌ๋Ÿผ์˜ ๊ณต๋ฐฑ๋งŒ NaN์œผ๋กœ ๋ณ€๊ฒฝํ›„ dropna() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

 

๋ฐ˜์‘ํ˜•