๋Ÿฌ๋‹์Šคํ‘ผ์ฆˆ ์ˆ˜์—… ์ •๋ฆฌ 

 

 

< ์ด์ „ ๊ธ€ > 

https://silvercoding.tistory.com/49

 

[python pandas] 2. pandas ๊ธฐ์ดˆ ์‚ฌ์šฉ (2) - ์ถ”๊ฐ€, ๋ณ‘ํ•ฉ, ์ €์žฅ

๋Ÿฌ๋‹์Šคํ‘ผ ์ˆ˜์—… ์ •๋ฆฌ < ์ด์ „ ๊ธ€ > https://silvercoding.tistory.com/48 [python pandas] pandas ๊ธฐ์ดˆ ์‚ฌ์šฉ (1) ๋Ÿฌ๋‹์Šคํ‘ผ ์ˆ˜์—… ์ •๋ฆฌ * ํŒ๋‹ค์Šค ๊ธฐ๋ณธ ํ•จ์ˆ˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ ์ฝ๊ธฐ : read_excel(), read_csv() ๋ฐ์ดํ„ฐ ์„ ํƒ..

silvercoding.tistory.com

 

 

 


 1. ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ & ์‚ดํŽด๋ณด๊ธฐ 
import pandas as pd

pandas import ํ•ด์ฃผ๊ธฐ 

file = './data/babyNamesUS.csv'
raw = pd.read_csv(file)

์˜ค๋Š˜ ํ•™์Šตํ•  csv ํŒŒ์ผ์„ pandas๋กœ ๋ถˆ๋Ÿฌ์™€ ์ค€๋‹ค. 

raw.head()

raw.info()

1048575 ๊ฐœ์˜ row์™€ 5๊ฐœ์˜ column ์ด ์กด์žฌํ•˜๋ฉฐ, ๊ฒฐ์ธก๊ฐ’์„ ์—†๋‹ค. 

[ ์ปฌ๋Ÿผ ์ •๋ณด : ์ฃผ, ์„ฑ๋ณ„, ์ถœ์ƒ๋…„๋„, ์ด๋ฆ„, ์ด๋ฆ„ ๊ฐœ์ˆ˜ ]

 


 

 2. ์ง‘๊ณ„ํ•˜๊ธฐ ( pivot_table ) 

pd.pivot_table(index = '์ปฌ๋Ÿผ๋ช…', columns = '์ปฌ๋Ÿผ๋ช…', values = '์ปฌ๋Ÿผ๋ช…', aggfunc = 'sum')

raw.pivot_table(index = 'Name', values = 'Number', aggfunc='sum')

์ด๋ฆ„ ๋ณ„ ๋นˆ๋„์ˆ˜ ์ง‘๊ณ„ํ•ด์„œ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. columns๋ฅผ ๋”ฐ๋กœ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด values๊ฐ€ column์ด ๋œ๋‹ค. 

name_df = raw.pivot_table(index = 'Name', values = 'Number', columns = 'Sex', aggfunc='sum')
name_df.head()

์ด๋ ‡๊ฒŒ ์„ฑ๋ณ„์„ ๊ธฐ์ค€์œผ๋กœ ์ด๋ฆ„์˜ ๋นˆ๋„์ˆ˜๋ฅผ ์ง‘๊ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค. 

name_df.info()

์œ„์˜ ํ”ผ๋ฒ—ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์˜ info๋ฅผ ๋ณด๋ฉด F, M ๋ชจ๋‘ ๊ฒฐ์ธก๊ฐ’์ด ๊ฝค ์žˆ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

 

 3. ๊ฒฐ์ธก๊ฐ’ ์ฑ„์šฐ๊ธฐ 
  • ๊ณตํ†ต๋œ ๊ฐ’์„ ์ž…๋ ฅ(ex 0)
  • ์ž„์˜์˜ ์ˆ˜๋ฅผ ์ž…๋ ฅ(ex ํ‰๊ท , ์ตœ๋Œ€๊ฐ’, ์ตœ์†Œ๊ฐ’, ๋น„์–ด์žˆ๋Š” ์ž๋ฆฌ ์ฃผ๋ณ€์˜ ๊ฐ’ ๋“ฑ)
  • ๋น„์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋ถ„์„์—์„œ ์ œ์™ธ

- fillna()

name_df = name_df.fillna(0)
name_df.head()

์ด ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ ๊ฐœ์ˆ˜๊ฐ€ ์ฑ„์›Œ์ ธ ์žˆ์ง€ ์•Š์€ ๊ฒƒ์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ 0์œผ๋กœ ๋ชจ๋“  ๊ฒฐ์ธก๊ฐ’์„ ์ฑ„์šด๋‹ค. 

name_df.info()

๊ฒฐ์ธก๊ฐ’์ด ๋ชจ๋‘ ์ฑ„์›Œ์ง„ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค 

 

 

 

 

 4. ์ •๋ ฌํ•˜๊ธฐ : sort_values(by='์ปฌ๋Ÿผ๋ช…', ascending=True)

- ๋‚จ์ž, ์—ฌ์ž ๊ฐ๊ฐ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฆ„ ์•Œ์•„๋ณด๊ธฐ 

name_df.sort_values(by = 'M')

๋‚จ์„ฑ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜์˜€๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ธฐ๋ณธ์ด ascending=True ์ด๋ฏ€๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋˜์–ด์žˆ๋‹ค. ์ƒ์œ„ 5๊ฐœ๋ฅผ ์•Œ์•„๋ณผ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐ”๊พธ์–ด ์ค€๋‹ค. 

name_df.sort_values(by = 'M', ascending = False)

name_df.sort_values(by = 'M', ascending = False).head().index

Index(['Michael', 'James', 'Robert', 'John', 'David'], dtype='object', name='Name')

index๋งŒ ์ถ”์ถœํ•ด์„œ ์ƒ์œ„ 5๊ฐœ์˜ ์ด๋ฆ„๋งŒ ๋ฝ‘์€ ๊ฒƒ์ด๋‹ค. 

name_df.sort_values(by = 'F', ascending = False).head().index

Index(['Mary', 'Jennifer', 'Elizabeth', 'Patricia', 'Linda'], dtype='object', name='Name')

์—ฌ์„ฑ์˜ ์ƒ์œ„ 5๊ฐœ ์ด๋ฆ„๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฝ‘์•„์ค€๋‹ค. 

 

 

 

 

 5. ์ปฌ๋Ÿผ๋ณ„ ๋ฐ์ดํ„ฐ ์ข…๋ฅ˜ ํ™•์ธํ•˜๊ธฐ 

- unique : ์ข…๋ฅ˜ ์•Œ์•„๋ณด๊ธฐ 

raw['StateCode'].unique()

- value_counts() : ์ข…๋ฅ˜ + ๊ฐœ์ˆ˜

raw['StateCode'].value_counts()

raw['YearOfBirth'].value_counts()

2007๋…„์— ๊ธฐ๋ก๋œ ์ด๋ฆ„์ด ๊ฐ€์žฅ ๋งŽ๋‹ค! 


 

 

 

 

 

 

 

 

 

 

+ Recent posts