๊ฐœ๋ฐœ Code/ํŒŒ์ด์ฌ Python

[Python][pandas] pandas ํ†บ์•„๋ณด๊ธฐ

5hr1rnp 2025. 1. 22. 10:10
๋ฐ˜์‘ํ˜•

Pandas๋ž€ ?


  Pandas๋Š” 2008๋…„ Wes McKinney์— ์˜ํ•ด ๊ฐœ๋ฐœ๋จ. ๋‹น์‹œ ๊ทธ๋Š” ๊ธˆ์œต ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๊ณ  ๋ถ„์„ํ•˜๋Š” ๋ฐ ์žˆ์–ด ํšจ์œจ์ ์ด๊ณ  ์ง๊ด€์ ์ธ ๋„๊ตฌ์˜ ํ•„์š”์„ฑ์„ ๋Š๊ผˆ์Œ. ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ทธ๋Š” Pandas๋ฅผ ์„ค๊ณ„ํ–ˆ๊ณ , ์ดํ›„ ์˜คํ”ˆ ์†Œ์Šค๋กœ ๊ณต๊ฐœ๋˜์–ด ์ „ ์„ธ๊ณ„ ๋ฐ์ดํ„ฐ ๊ณผํ•™ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋น ๋ฅด๊ฒŒ ์ธ๊ธฐ๋ฅผ ์–ป๊ฒŒ ๋จ. Pandas๋ผ๋Š” ์ด๋ฆ„์€ "PANel DAta"์—์„œ ์œ ๋ž˜๋˜์—ˆ์œผ๋ฉฐ, ์ด๋Š” ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐ ์ค‘์ ์„ ๋‘”๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๋‚ดํฌํ•จ.

 

  Pandas๋Š” NumPy๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์˜คํ”ˆ ์†Œ์Šค์ด๋ฉฐ ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋ฐ์ดํ„ฐ ์กฐ์ž‘๊ณผ ๋ถ„์„์„ ์œ„ํ•ด ์„ค๊ณ„๋œ ํŒŒ์ด์ฌ์˜ ๊ฐ•๋ ฅํ•˜๊ณ  ์œ ์—ฐํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.

์ดˆ๋ณด์ž๋ถ€ํ„ฐ ์ˆ™๋ จ๋œ ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž๊นŒ์ง€, ๋ˆ„๊ตฌ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณต.

  • Series: ๋ฐ์ดํ„ฐ ํƒ€์ž…์— ์ƒ๊ด€์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” 1์ฐจ์› ๋ผ๋ฒจ ๋ฐฐ์—ด
  • DataFrame: ํฌ๊ธฐ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋ผ๋ฒจ์ด ๋ถ™์€ 2์ฐจ์› ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ, ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ๋‚˜ SQL ํ…Œ์ด๋ธ”๊ณผ ์œ ์‚ฌ

  Pandas๋Š” ๋น ๋ฅด๊ณ  ์œ ์—ฐํ•˜๋ฉฐ ํ‘œํ˜„๋ ฅ์ด ๋›ฐ์–ด๋‚œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๊ด€๊ณ„ํ˜• ๋˜๋Š” ๋ผ๋ฒจ์ด ์ง€์ •๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋จ. ์‹ค์ œ ๋ฐ์ดํ„ฐ ๋ถ„์„ ์ž‘์—…์„ ์œ„ํ•œ ๊ณ ๊ธ‰ ๋ฐ์ดํ„ฐ ์กฐ์ž‘์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์ž๋ฆฌ ์žก๊ณ  ์žˆ์œผ๋ฉฐ, "์‹ค์ œ ๋ฐ์ดํ„ฐ ๋ถ„์„" ์ž‘์—…์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ. Pandas๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋„๊ตฌ ์ค‘ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•˜๊ณ  ์œ ์—ฐํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ ์–ธ์–ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๋กœ ๋ฐœ์ „ํ•˜๊ณ  ์žˆ์Œ.


Pandas์˜ ์ฃผ์š” ๊ธฐ๋Šฅ


๋ˆ„๋ฝ๋œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ: 

  • NaN, NA ๋˜๋Š” NaT์™€ ๊ฐ™์€ ๋ˆ„๋ฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ

ํฌ๊ธฐ ์กฐ์ • ๊ฐ€๋Šฅ:

  • DataFrame ๋ฐ ๊ณ ์ฐจ์› ๊ฐ์ฒด์—์„œ ์—ด์„ ์‚ฝ์ž…ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Œ

์ž๋™ ๋ฐ์ดํ„ฐ ์ •๋ ฌ:

  • ๋ผ๋ฒจ์„ ๋ช…์‹œ์ ์œผ๋กœ ์ •๋ ฌํ•˜๊ฑฐ๋‚˜ ์ž๋™์œผ๋กœ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Œ

์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ ๊ทธ๋ฃนํ™”:

  • ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ์ง‘๊ณ„ ๋ฐ ๋ณ€ํ™˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ

๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜:

  • ํŒŒ์ด์ฌ ๋ฐ NumPy ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ DataFrame ๊ฐ์ฒด๋กœ ์‰ฝ๊ฒŒ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Œ

์Šฌ๋ผ์ด์‹ฑ ๋ฐ ์ธ๋ฑ์‹ฑ:

  • ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ ์Šฌ๋ผ์ด์‹ฑ, ํŒฌ์‹œ ์ธ๋ฑ์‹ฑ ๋ฐ ์„œ๋ธŒ์„ธํŒ…์„ ์ œ๊ณต

๋ณ‘ํ•ฉ ๋ฐ ์กฐ์ธ:

  • ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์ง๊ด€์ ์œผ๋กœ ๋ณ‘ํ•ฉํ•˜๊ณ  ์กฐ์ธํ•  ์ˆ˜ ์žˆ์Œ

๋ฐ์ดํ„ฐ ํ˜•ํƒœ ๋ณ€๊ฒฝ:

  • ๋ฐ์ดํ„ฐ ์„ธํŠธ์˜ ๋ฆฌ์…ฐ์ดํ•‘ ๋ฐ ํ”ผ๋ฒ—ํŒ…์„ ์ง€์›

๊ณ„์ธต์  ๋ผ๋ฒจ:

  • ์ถ•์— ์—ฌ๋Ÿฌ ๋ผ๋ฒจ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ

๊ฐ•๋ ฅํ•œ I/O ๋„๊ตฌ:

  • CSV, Excel ํŒŒ์ผ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ ๋‹ค์–‘ํ•œ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œ ๋ฐ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ

์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ ์ง€์›:

  • ๋‚ ์งœ ๋ฒ”์œ„ ์ƒ์„ฑ, ์ด๋™ ํ‰๊ท  ๊ณ„์‚ฐ, ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜ ๋“ฑ์„ ์ง€์›

728x90
๋ฐ˜์‘ํ˜•

Pandas ์‹œ์ž‘ํ•˜๊ธฐ


  Pandas๋Š” pip ๋˜๋Š” anaconda ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Œ

 

# PyPI
pip install pandas

# conda
conda install -c conda-forge pandas

๊ธฐ๋ณธ ์˜ˆ์ œ

  • Series ์ƒ์„ฑ: ๋ผ๋ฒจ์ด ๋ถ™์€ 1์ฐจ์› ๋ฐฐ์—ด๋กœ, ์ •์ˆ˜, ๋ฌธ์ž์—ด, ํŒŒ์ด์ฌ ๊ฐ์ฒด ๋“ฑ ์–ด๋–ค ๋ฐ์ดํ„ฐ ํƒ€์ž…๋„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ
# pandas series
import pandas as pd 

data = [10, 20, 30, 40]
series = pd.Series(data, index=['a', 'b', 'c', 'd'])
print(series)

# ์ถœ๋ ฅ ๊ฒฐ๊ณผ
# a    10
# b    20
# c    30
# d    40
# dtype: int64

 

  • DataFrame ์ƒ์„ฑ: ํ–‰๊ณผ ์—ด๋กœ ๊ตฌ์„ฑ๋œ 2์ฐจ์› ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ, ์—‘์…€ ํ…Œ์ด๋ธ”์ด๋‚˜ SQL ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Œ
# pandas dataframe
import pandas as pd

data = {
    "Name": ["๊น€์„œ์šธ", "์ด์ „์ฃผ", "์†ก๊ณต์ฃผ"],
    "Age": [25, 30, 35],
    "City": ["์„œ์šธ", "์ „์ฃผ", "๊ณต์ฃผ"]
}
df = pd.DataFrame(data)
print(df)

# ์ถœ๋ ฅ ๊ฒฐ๊ณผ
#     Name   Age   City
# 0  ๊น€์„œ์šธ   25   ์„œ์šธ
# 1  ์ด์ „์ฃผ   30   ์ „์ฃผ
# 2  ์†ก๊ณต์ฃผ   35   ๊ณต์ฃผ

 


Pandas๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ


Pandas๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์— ์ด์ƒ์ :

  • ๋ฐ์ดํ„ฐ ์ •๋ฆฌ ๋ฐ ์ „์ฒ˜๋ฆฌ
  • ํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„(EDA)
  • ์‹œ๊ณ„์—ด ๋˜๋Š” ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ ์ž‘์—…

๋‹ค๋งŒ, ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์˜ ๊ฒฝ์šฐ Dask๋‚˜ PySpark ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋” ์ ํ•ฉํ•  ์ˆ˜ ์žˆ์Œ

๋ฐ˜์‘ํ˜•