01. ํ๋ค์ค(pandas) ๋ผ์ด๋ธ๋ฌ๋ฆฌ import
import pandas as pd
์ฐ์ ํ๋ค์ค(pandas)๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ import ํด์ค๋ค.
02. csvํ์ผ ๋ถ๋ฌ์ค๊ธฐ : pd.read_csv( )
pd.read_csv()
pd.read_csv() ๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค์. ๊ดํธ ์์ 'ํ์ผ๋ช ' ํน์ 'ํ์ผ ๊ฒฝ๋ก'๋ฅผ ์ ์ด์ฃผ๋ฉด ๋๋ค. ๊ทธ๋ฅ pd.read_csv๋ก ํ์ผ์ ๋ถ๋ฌ์ฌ ์ ์์ง๋ง, ํ์ผ์ ๋ถ๋ฌ์ฌ ๋๋ถํฐ ๊ทธ๊ฒ์ ํ๋์ ๋ณ์๋ก ์ ์ธํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.
03. ๊ตฌ๋ถ์ : sep = '|' / '\t'
๊ธฐ๋ณธ์ ์ผ๋ก csvํ์ผ์ ์ผํ(comma)๋ก ๋ฐ์ดํฐ ๊ฐ์ด ๊ตฌ๋ถ๋๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ๊ตฌ๋ถ์๋ฅผ ์ค์ ํ ํ์๊ฐ ์๋ค. ํ์ง๋ง ์ฝค๋ง(,)๊ฐ ์๋ ๋ค๋ฅธ๊ฒ์ผ๋ก ๊ตฌ๋ถ์๊ฐ ์ค์ ๋์ด์์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฅ ๋ถ๋ฌ์ค๊ฒ ๋๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ๋ฐ๋ผ์ ์ด๋ฌํ ๊ฒฝ์ฐ sep์ ์ค์ ํด์ฃผ์ด์ผ ํ๋ค.
pd.read_csv('ํ์ผ๋ช
', sep = '|')
pd.read_csv('ํ์ผ๋ช
', sep='\t')
04. ์ธ์ฝ๋ฉ : encoding = 'utf-8' / 'cp949'
๋ด๊ฐ ๋ถ๋ฌ์ค๊ณ ์ ํ๋ ํ์ผ์ encoding๊ณผ python encoding์ ์ค์ ์ด ๋ง์ง ์์ผ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.(UnicodeDecodeError) ์ด๋ฌํ ๊ฒฝ์ฐ encoding = 'utf-8' ํน์ encoding = 'cp949'๋ก ์ค์ ํด์ค๋ค.
pd.read_csv('ํ์ผ๋ช
', encoding = 'utf-8')
pd.read_csv('ํ์ผ๋ช
', encoding='cp949)
05. ํน์ ์ค์ ์ ์ธํ๊ณ ํ์ผ ๋ถ๋ฌ์ค๊ธฐ : skiprows
๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์จ ๋ค, ํด๋น ๊ฐ๋ค์ ํ์ธํด๋ณด๋ 13๋ฒ์งธํ๊น์ง ์ด์ํ ๊ฐ์ด ๋ค์ด์๋ค.
์ด๋ฌํ ๊ฒฝ์ฐ ๋ณธ๋ csvํ์ผ์ ์ด์ด๋ณด๋ฉด ๋ฐ์ดํฐ ์์ ์๋ด์ฌํญ ๋๋ ๋ถํ์ํ ๊ธ๋ค์ด ์ ํ์ ธ์์์ ํ์ธํ ์ ์๋ค. ์ค์ ๋ด๊ฐ ๋ณด๊ณ ์ ํ๋ ๊ฐ๋ค์ 15๋ฒ์งธ ํ๋ถํฐ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๊ฒฝ์ฐ skiprows๋ฅผ ์ฌ์ฉํ์ฌ 15๋ฒ์งธ ํ(row)๋ฅผ ๋นผ๊ณ ๋๋จธ์ง ํ๋ง ๋ถ๋ฌ์ค๋๋ก ํ์.(header ํฌํจํ์ฌ ์ญ์ ํ๋ฏ๋ก 15๊ฐ)
pd.read_csv('ํ์ผ๋ช
', skiprows= ์ซ์)
skiprows์ ๋ด๊ฐ ์คํตํ๊ณ ์ถ์ ํ์ ๊ฐ์๋ฅผ ์ ์ด์ฃผ๋ฉด ๋๋ค. skiprows =15๋ฅผ ์ ์ด์ฃผ์ด 15๋ฒ์งธ ํ๊น์ง ์คํตํด๋ณด๋ฉด 16๋ฒ์งธ ํ๋ถํฐ ์ถ๋ ฅ๋์์์ ์ ์ ์๋ค.
06. ํน์ ์ด(columns)์ index๋ก ์ง์ : index_col = 1(์ธ๋ฑ์ค ๋ฒํธ) / '์นผ๋ผ๋ช '
๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ฌ๋๋ถํฐ ํน์ columns๋ฅผ index๋ก ์ง์ ํ๊ณ ์ถ๋ค๋ฉด index_col ์ ์ฌ์ฉํ๋ฉด ๋๋ค. ์ด๋ฒ์ ๊ฒฝ์ฐ '์ฑ๋ณ'์นผ๋ผ์ ์ธ๋ฑ์ค๋ก ์ง์ ํด๋ณด๋๋ก ํ์.
ใฐ๏ธ ๋ฐฉ๋ฒ 1 ) ํด๋น ์นผ๋ผ์ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ์ ์ด์ค๋ค
'์ฑ๋ณ'์นผ๋ผ์ ์ ์ฒด ๋ฐ์ดํฐ ํ๋ ์์์ 2๋ฒ์งธ์ ์์ผ๋ฏ๋ก index_col =1(0๋ถํฐ ์นด์ดํธ ํ๋ฏ๋ก 2๋ฒ์งธ์๋ ํ์1๋ก ์ธ๋ฑ์ฑํด์์ผ ํจ)์ ์ ๋ ฅํ ๋ค, ๊ฒฐ๊ณผ๋ฅผ ํ์ธํด๋ณด๋ฉด '์ฑ๋ณ' column์ด ์ธ๋ฑ์ค๋ก ์ง์ ๋์์์ ์ ์ ์๋ค.
pd.read_csv('ํ์ผ๋ช
', index_col = 1)
ใฐ๏ธ๋ฐฉ๋ฒ 2) ํด๋น ์นผ๋ผ๋ช ์ ์ ์ด์ค๋ค.
index_col์ ๋ด๊ฐ ์ธ๋ฑ์ค๋ก ์ง์ ํ๊ณ ์ถ์ ์นผ๋ผ๋ช ์ ์ ์ด์ค ๋ค, ํ์ธํด๋ณด๋ฉด ํด๋น ์นผ๋ผ์ด ์ธ๋ฑ์ค๋ก ์ง์ ๋์์์ ์ ์ ์๋ค.
pd.read_csv('ํ์ผ๋ช
', index_col='์นผ๋ผ๋ช
')
07. ์นผ๋ผ ๋ช ๋ณ๊ฒฝ : names = [ ]
์ด๋ฒ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ฌ ๋ ์นผ๋ผ๋ช ์ ๋ฐ๊ฟ์ ๊ฐ์ ธ์๋ณด์. ๊ธฐ์กด ๋ฐ์ดํฐ ํ๋ ์์ ์นผ๋ผ๋ช ์ ์์ ๊ฐ๋ค.
pd.read_csv('ํ์ผ๋ช
', names=['์นผ๋ผ๋ช
1', '์นผ๋ ด๋ช
2']
names ์ ๋๊ดํธ๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ ํ๋ ์์ ์นผ๋ผ ์์์ ๋ง์ถฐ ๋ณ๊ฒฝํ ์นผ๋ผ๋ช ์ ์ ์ด์ฃผ๋ฉด ๋๋ค.
08. ํน์ ๊ฐ์ NaN์ผ๋ก ์ทจ๊ธ : na_values
๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ฌ ๋ ํน์ ๊ฐ๋ค์ NaN ์ทจ๊ธํ์ฌ ๋ถ๋ฌ์๋ณด์. ํด๋น ๋ฐ์ดํฐ ํ๋ ์์์ 'Embarked' ์นผ๋ผ์ ์๋ 'Q'๊ฐ์ ๋ชจ๋ NaN ์ทจ๊ธํ๊ณ ์ถ๋ค๋ฉด, na_values = ['Q']๋ก ์จ์ค๋ค.(์ฌ๋ฌ ๊ฐ ํ ๋ฒ์ ๊ฐ๋ฅ)
pd.read_csv('ํ์ผ๋ช
', na_values='๊ฒฐ์ธก์ผ๋ก ์ฒ๋ฆฌ ํ ๋ฐ์ดํฐ๊ฐ')
๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํด๋ณด๋ฉด 'Q'๊ฐ์ด NaN์ผ๋ก ์ทจ๊ธ๋์์์ ์ ์ ์๋ค.
09. csv์ผ๋ก ์ ์ฅ : df.to_csv
๋ง์ง๋ง์ผ๋ก, ํด๋น ๋ฐ์ดํฐํ๋ ์(df1)์ csvํ์ผ๋ก ์ ์ฅํด๋ณด์.
df.to_csv('ํ์ผ๋ช
.csv')
to_csv( ) ๋ฅผ ์ด์ฉํ์ฌ ๊ดํธ ์์ ๋ด๊ฐ ์ ์ฅํ๊ณ ์ถ์ ํ์ผ๋ช ์ ์ ์ด์ค ๋ค, ์คํ์ํจ๋ค. ์ด๋ ๊ฒ ์ ์ฅํ ํ์ผ์ ํด๋น ์คํฌ๋ฆฝํธ๊ฐ ์๋ ํด๋ ํน์ ์์น์ ์์ฑ๋๋ค.
# reference