๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํ•˜๋ฃจ๊ณต๋ถ€

์ œ 12์žฅ ๐Ÿ“’๋ฐ์ดํ„ฐ ๋ถ„์„_pandas(Series ์ž๋ฃŒํ˜•)๐Ÿ“’

Numpy๋ฅผ ๋ฐฐ์šด๊ฒƒ์€ Pandas ๋ฅผ ์“ฐ๊ธฐ ์œ„ํ•ด ๋„ˆ๋ฌด ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ ๋„

๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค๐Ÿ˜ฒ ๋“œ๋””์–ด ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”์— ์‹ค๋ฌด์—๋„ ๋งŽ์ด ์“ฐ์ด๋Š” pandas๐Ÿผ์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๋Š” ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.

Pandas

  • ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐ ๋ถ„์„์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ •์ ์ด๋ฉด์„œ๋„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ฒ˜๋ฆฌ
  • ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐํƒ€์ž…์œผ๋กœ ์—ด์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Œ
    (์ฐธ๊ณ ) Numpy : ์ „์ฒด ๋ฐฐ์—ด ์›์†Œ๋ฅผ ๋™์ผํ•œ ํƒ€์ž…์œผ๋กœ ์ œํ•œ
  • ์ฃผ์š” ๊ธฐ๋Šฅ
    • ๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ : csv, excel, RDB, JSON ๋“ฑ ๋‹ค์–‘ํ•œ ํฌ๋งท์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์„ ์‚ฌ์šฉ
    • ๋ฐ์ดํ„ฐ ๊ฐ€๊ณต : ๋ถ„๋ฆฌ, ๊ฒฐํ•ฉ, ๊ณ„์ธต, ํ”ผ๋ด‡ ๋“ฑ
    • ํ†ต๊ณ„ ๋ถ„์„ ์ฒ˜๋ฆฌ

์ž๋ฃŒํ˜•

  • Series
    • 1์ฐจ์› ๋ฐฐ์—ด๊ณผ ์œ ์‚ฌํ•œ ์ž๋ฃŒํ˜•
    • ์ƒ‰์ธ(index) : ํ–‰ ๋ฒˆํ˜ธ
      • ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ์— ๋ถ€์—ฌํ•˜๋Š” ์†์„ฑ์œผ๋กœ ๊ธฐ๋ณธ๊ฐ’์€ 0๋ถ€ํ„ฐ 1์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆซ์ž ์ง€์ •
      • index ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ์šด ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
      • ๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ ํƒ€์ž…์œผ๋กœ ์ƒˆ๋กœ์šด ๊ฐ’์„ ์ „๋‹ฌํ•ด์•ผํ•˜๋ฉฐ ๋‹ค์ฐจ์› ์ž๋ฃŒํ˜•์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ
      • ์ „๋‹ฌํ•˜๋Š” ์ƒ‰์ธ์˜ ๊ฐœ์ˆ˜์™€ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ผ์น˜ํ•ด์•ผ ํ•จ
    • ๊ฐ๊ฐ์˜ ์ƒ‰์ธ๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งคํ•‘๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ dictionary ์ž๋ฃŒํ˜•๊ณผ ์œ ์‚ฌ
    • ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐ์ดํ„ฐ ํƒ€์ž… ์‚ฌ์šฉ ๊ฐ€๋Šฅ

โœ… pandas ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ Series, dataFrame ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

- import pandas as pd

- pd.Series()

Series ์ƒ์„ฑ

  • ํ•˜๋‚˜์˜ ๊ฐ’(์ˆซ์ž, ๋ฌธ์ž) ๋˜๋Š” ์ž๋ฃŒํ˜•(๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ, np ๋ฐฐ์—ด)์œผ๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ
  • ์ˆซ์ž
    • ex) s1 = pd.Series(10)
  •  ๋ฌธ์ž
    • ex) s2 = pd.Series('abc')
  • ์ž๋ฃŒํ˜•
    • ex) s3 = pd.Series([10, 20, 30])
  • ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ์„œ๋กœ ๋‹ค๋ฅธ ๋ฆฌ์ŠคํŠธ ์ž๋ฃŒํ˜•
    • ex) s4 = pd.Series([10.3, 'test', 200, [1, 2, 3]])
  • ๋”•์…”๋„ˆ๋ฆฌ ์ž๋ฃŒํ˜•(์ž๋™์œผ๋กœ ๋ผ๋ฒจ ๋ถ€์—ฌ, key๊ฐ€ index, value๊ฐ€ ์‹ค์ œ ๋ฐ์ดํ„ฐ)
    • ex) s5 = pd.Series({'a':10, 'b':20, 'c':30})

Series ์†์„ฑ

  • ์†์„ฑ์€ ์†Œ๊ด„ํ˜ธ๋ฅผ ๋ถ™์ด์ง€ ์•Š์Œ
  • index : series ๊ฐ์ฒด์˜ ์ธ๋ฑ์Šค ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜
  • values : series ๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ(๊ฐ’) ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜
  • name : series ๊ฐ์ฒด์˜ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜
  • dtype : series ๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ฐ˜ํ™˜
  • size : series ๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜(๊ธธ์ด)๋ฅผ ๋ฐ˜ํ™˜
  • shape : series ๊ฐ์ฒด์˜ ๊ตฌ์กฐ(ํ–‰, ์—ด, ์ฐจ์›)๋ฅผ ๋ฐ˜ํ™˜

โ›”(์ฃผ์˜) : 1) ํ–‰ ๊ฐœ์ˆ˜(๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜)์™€ ๋™์ผํ•œ ๊ธธ์ด๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค

                  2) ์ธ๋ฑ์Šค ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ๋‹จ์ผ ๋ผ๋ฒจ ์ธ๋ฑ์Šค๋งŒ ์ˆ˜์ •ํ•˜๋Š”๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅ

                  3) ์ธ๋ฑ์Šค ๋ผ๋ฒจ๋ง ์ˆ˜์ •์‹œ ์ „์ฒด ์ธ๋ฑ์Šค๋ฅผ ๋Œ€์ž…ํ•ด์ค˜์•ผ ํ•œ๋‹ค

 


๐Ÿ”‘ dictionary ์ž๋ฃŒํ˜•๊ณผ ์œ ์‚ฌํ•œ Series ์ž๋ฃŒํ˜•

1) dictionary ์ž๋ฃŒํ˜•์œผ๋กœ Series ์ƒ์„ฑ

ex)

data = {'์„œ์šธ':100, '๊ฒฝ๊ธฐ':200, '๊ฐ•์›':300, '๋ถ€์‚ฐ':400}
sample = pd.Series(data)
print(data)
print(sample)

{'์„œ์šธ': 100, '๊ฒฝ๊ธฐ': 200, '๊ฐ•์›': 300, '๋ถ€์‚ฐ': 400}
์„œ์šธ    100
๊ฒฝ๊ธฐ    200
๊ฐ•์›    300
๋ถ€์‚ฐ    400

 2) Series ๊ฐ์ฒด์™€ in ์—ฐ์‚ฐ์ž
 dictionary์™€ ์œ ์‚ฌ : in ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด ๋‚ด๋ถ€ ์š”์†Œ ๊ฒ€์‚ฌ์‹œ
 key๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ๋ผ๋ฒจ์„ ์ด์šฉํ•ด ํ•ด๋‹น ์š”์†Œ๊ฐ€ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ True, False๋กœ ์ถœ๋ ฅ

ex)

print('์„œ์šธ' in data)
print('์„œ์šธ' in sample)

 

True
True

3) for๋ฌธ์—์„œ in์—ฐ์‚ฐ์ž๋กœ ์ ‘๊ทผ : Series์˜ value๊ฐ’์„ ์ฐธ์กฐ

ex)

for key in data:
    print(key)
print("--------------")
for value in sample.values:
    print(value)

 

์„œ์šธ
๊ฒฝ๊ธฐ
๊ฐ•์›
๋ถ€์‚ฐ
--------------
100
200
300
400

์ธ๋ฑ์‹ฑ(Indexing)

  • ํ•˜๋‚˜์˜ ํŠน์ • ๊ฐ’์„ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ
  • ์ฐธ์กฐํ•˜๋Š” ์ธ๋ฑ์Šค : ๊ธฐ๋ณธ ์ˆซ์ž ์ธ๋ฑ์Šค, ๋ผ๋ฒจ ์ธ๋ฑ์Šค
  • ์ƒˆ๋กœ์šด ์ธ๋ฑ์Šค๋ฅผ ์„ค์ •ํ•ด๋„ ๊ธฐ๋ณธ ์ˆซ์ž ์ธ๋ฑ์Šค ์‚ฌ์šฉ ๊ฐ€๋Šฅ

์Šฌ๋ผ์ด์‹ฑ(Slicing)

  • Series๊ฐ์ฒด[์‹œ์ž‘์ธ๋ฑ์Šค : ๋์ธ๋ฑ์Šค : ๊ฐ„๊ฒฉ]
  • ํŠน์ • ๋ฒ”์œ„์˜ ๊ฐ’์„ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ
  • ๊ธฐ๋ณธ ์ˆซ์ž ์ธ๋ฑ์Šค ๋˜๋Š” ์ƒˆ๋กœ์šด ์ธ๋ฑ์Šค ๋ชจ๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ๊ธฐ๋ณธ ์ˆซ์ž ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์Šฌ๋ผ์ด์‹ฑ ํ•  ๋•Œ๋Š” ๋ ์ธ๋ฑ์Šค ๋ฏธํฌํ•จ
  • ๋ผ๋ฒจ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์Šฌ๋ผ์ด์‹ฑ ํ•  ๋•Œ ๋ ์ธ๋ฑ์Šค๊นŒ์ง€ ๋ชจ๋‘ ํฌํ•จ

๋‹ค์Œ ์‹œ๊ฐ„์—๋Š” DataFrame ์„ ๋ธ”๋กœ๊น… ํ•  ์˜ˆ์ • ์ž…๋‹ˆ๋‹ค.