Data analysis/๋ฐ์ดํ„ฐ ๋ถ„์„

Pandas ์‚ฌ์šฉ๋ฒ• - ํŒŒ์ผ ์ €์žฅ ๋ฐ ์—ด๊ธฐ [๊ธฐ๋ณธ]

Mainyoung 2022. 1. 15. 23:26

pandas๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ํŒŒ์ผ์„ ์—ด๊ณ  ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์ „์— ํ™œ์šฉํ–ˆ๋˜ DataFrame์„ ํ™œ์šฉํ•˜์ž.

data = {
    '์ด๋ฆ„' : ['์ฑ„์น˜์ˆ˜', '์ •๋Œ€๋งŒ', '์†กํƒœ์„ญ', '์„œํƒœ์›…', '๊ฐ•๋ฐฑํ˜ธ', '๋ณ€๋•๊ทœ', 'ํ™ฉํƒœ์‚ฐ', '์œค๋Œ€ํ˜‘'],
    'ํ•™๊ต' : ['๋ถ์‚ฐ๊ณ ', '๋ถ์‚ฐ๊ณ ', '๋ถ์‚ฐ๊ณ ', '๋ถ์‚ฐ๊ณ ', '๋ถ์‚ฐ๊ณ ', '๋Šฅ๋‚จ๊ณ ', '๋Šฅ๋‚จ๊ณ ', '๋Šฅ๋‚จ๊ณ '],
    'ํ‚ค' : [197, 184, 168, 187, 188, 202, 188, 190],
    '๊ตญ์–ด' : [90, 40, 80, 40, 15, 80, 55, 100],
    '์˜์–ด' : [85, 35, 75, 60, 20, 100, 65, 85],
    '์ˆ˜ํ•™' : [100, 50, 70, 70, 10, 95, 45, 90],
    '๊ณผํ•™' : [95, 55, 80, 75, 35, 85, 40, 95],
    '์‚ฌํšŒ' : [85, 25, 75, 80, 10, 80, 35, 95],
    'SWํŠน๊ธฐ' : ['Python', 'Java', 'Javascript', '', '', 'C', 'PYTHON', 'C#']
}
df = pd.DataFrame(data,index =['1๋ฒˆ','2๋ฒˆ','3๋ฒˆ','4๋ฒˆ','5๋ฒˆ','6๋ฒˆ','7๋ฒˆ','8๋ฒˆ'])
df.index.name = '์ง€์›๋ฒˆํ˜ธ'

Pandas์—์„œ๋Š” csv, hdf, SQL, excel, json ๋“ฑ ๊ต‰์žฅํžˆ ๋งŽ์€ ํ˜•์‹์œผ๋กœ ํŒŒ์ผ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉ๋ฐฉ๋ฒ•์€ ๋ชจ๋‘ ๋น„์Šทํ•˜๋‹ˆ ๋ช‡๊ฐ€์ง€๋งŒ ์•Œ์•„๋ณด์ž.


ํŒŒ์ผ ์ €์žฅ

 

#csvํŒŒ์ผ๋กœ ์ €์žฅ
df.to_csv('score.csv',encoding='utf-8-sig')#์ธ์ฝ”๋”ฉ ํ•ด์ฃผ๋ฉด ํ•œ๊ธ€์ด ์•ˆ๊นจ์ง

#csvํŒŒ์ผ์ธ๋ฐ, index(์ง€์›๋ฒˆํ˜ธ)๋ฅผ ๋นผ๊ณ  ํŒŒ์ผ ์ €์žฅ
df.to_csv('score.csv',encoding='utf-8-sig',index=False)

์œ„์™€ ๊ฐ™์ด to_csv('ํŒŒ์ผ ์ด๋ฆ„', ...)์„ ํ™œ์šฉํ•˜๋ฉด ์ƒ์„ฑํ•œ DataFrame์„ csvํŒŒ์ผ๋กœ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ณ , index์˜ ํฌํ•จ์—ฌ๋ถ€๊นŒ์ง€ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋น„์Šทํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‹ค๋ฅธ ํ™•์žฅ์ž๋กœ ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด to_[___]๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

##ํ…์ŠคํŠธ(.txt)ํŒŒ์ผ๋กœ ์ €์žฅ
df.to_csv('score.txt',sep='\t') #tab์œผ๋กœ ๊ตฌ๋ถ„๋œ ํ…์ŠคํŠธ ํŒŒ์ผ

#์—‘์…€ ํŒŒ์ผ๋กœ ์ €์žฅ
df.to_excel('score.xlsx')

ํŒŒ์ผ ์—ด๊ธฐ

๋˜ํ•œ ์ €์žฅ๋œ ํŒŒ์ผ์„ ๊ฐ€์ ธ์™€์„œ ์—ด ์ˆ˜ ์žˆ๋‹ค. 

'to_ํ™•์žฅ์ž' ๋Œ€์‹  ์ด๋ฒˆ์—๋Š” 'read_ํ™•์žฅ์ž'๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

#csvํŒŒ์ผ ์—ด๊ธฐ
df=pd.read_csv('score.csv')
df

๋˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ๋“ค์„ ์—ด์–ด๋ณด๋ฉด, ๊ฐ€๋” ์“ธ๋ฐ์—†๋Š” ์ธ๋ฑ์Šค๋“ค์ด ์ƒ๋‹จ์— ๋ฐฐ์น˜๋œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์“ธ๋ฐ ์—†๋Š” ํ–‰์„ ์‚ญ์ œํ•˜๊ณ  ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์œ„์˜ df์˜ columns๋Š” '์ด๋ฆ„', 'ํ•™๊ต'๋“ฑ์˜ ์ •๋ณด๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์ง€๋งŒ skiprows ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ณ  ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

#1
df = pd.read_csv('score.csv',skiprows=1) #์ง€์ •๋œ ๊ฐฏ์ˆ˜ ๋งŒํผ์˜ row๋ฅผ ๊ฑด๋„ˆ๋œ€
df
#2
df = pd.read_csv('score.csv',skiprows=[1,3,5])
df
#3
df = pd.read_csv('score.csv',nrows=4) #์ง€์ •๋œ ๊ฐฏ์ˆ˜ ๋งŒํผ์˜ row๋งŒ ๊ฐ€์ ธ์˜ด
df

์•„๊นŒ์™€ ๋‹ค๋ฅด๊ฒŒ df์˜ columns์— ์ฑ„์น˜์ˆ˜, ๋ถ์‚ฐ๊ณ  ๋“ฑ์˜ ์ •๋ณด๊ฐ€ ๋“ค์–ด๊ฐ„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

๋‘๋ฒˆ์งธ ๋ฐฉ๋ฒ•์ฒ˜๋Ÿผ skiprows์˜ ์ž…๋ ฅ์„ ๋ฐฐ์—ดํ˜•ํƒœ๋กœ ์ž…๋ ฅํ•˜๋ฉด ์ œ์™ธํ•˜๊ณ  ์‹ถ์€ ํ–‰์„ ์ง์ ‘ ์„ ํƒํ•ด์„œ ๋นผ๊ณ , ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜๋„ ์žˆ๋‹ค. 

 

์„ธ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ์ง€์ •๋œ ๊ฐฏ์ˆ˜๋งŒํผ๋งŒ ํ–‰์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด๋‹ค. nrows ์˜ต์…˜์„ ํ™œ์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๊ฐฏ์ˆ˜๋งŒํผ์˜ ํ–‰๋งŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

728x90