#1 ๋ฐ์ดํฐ
(1) ๋น์ ํ ๋ฐ์ดํฐ
: ์ฌ์ง, ํ ์คํธ, ์๋ฆฌ์ ๊ฐ์ด ์ ํด์ง ํํ๊ฐ ์๋ ๋ฐ์ดํฐ๋ค์ ์ง์นญ
(2) ์ ํ ๋ฐ์ดํฐ
: ํ๊ณผ ์ด๋ก ๊ตฌ๋ถํ์ฌ ํ์ ๊ธฐ๋ก๋ ๋ฐ์ดํฐ๋ค์ ์ง์นญ
: CSV ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํจ
: ํ์ ์ค๋ฐ๊ฟ์ ์ด์ฉํ๊ณ ์ด์ ์ผํ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌ๋ถ
: ๊ฐ๋จํ ๊ท์น์ ์ฌ์ฉํ๊ธฐ์ CSV๋ ๋ฉ๋ชจ์ฅ๊ณผ ๊ฐ์ด ๊ฐ๋จํ ํ๋ก๊ทธ๋จ์ผ๋ก๋ ๋ง๋ค ์ ์์
#2 ํ๋ค์ค
- ํ๋ค์ค๋ ์ ํ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ํ์ด์ฌ ํจํค์ง
- ํ๋ค์ค๋ ๋ฐ์ดํฐ ์กฐ์ ๋ฐ ๋ถ์์ ์ํ ํจํค์ง
- ํ๋ค์ค๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด์๋ ์ ํ ๋ฐ์ดํฐ๋ฅผ ์์์ผ ํจ
import pandas as pd
#3 CSV ํ์ผ
- ๋ฐ์ดํฐ๋ฅผ ์ผํ๋ก๊ตฌ๋ถํ๋ ํ ์คํธ ํ์ผ๋ก ํ์ฅ์๋ .csv
- ํ๊ณผ ์ด๋ก ๊ตฌ์ฑ๋์ด ์์
- ์ ํ ๋ฐ์ดํฐ์ ๊ฐ์ฅ ๋ณดํธ์ ์ธ ํ์ผ ํ์
(1) head(n) : ์์ n๊ฐ์ ๋ก์ฐ ์ถ๋ ฅ
(2) tail(n) : ํ์ n๊ฐ์ ๋ก์ฐ ์ถ๋ ฅ
(3) pd.DataFrame.info() : Dataframe์ ์์ฝ๋ ์ ๋ณด ์ถ๋ ฅ
(4) DataFrame[’์ปฌ๋ผ’] or DataFrame.์ปฌ๋ผ : ํน์ ์ปฌ๋ผ ์ ํ
#4 ๋ฐ์ดํฐํ๋ ์ ์์ฑ
(1) ๋์์ ์ธ๊ตฌ์ ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํด dataframe ๋ง๋ค๊ธฐ
city = ['์์ธ','๋ถ์ฐ','๋๊ตฌ','์ธ์ฒ','๋์ ','๊ด์ฃผ','์์','์ธ์ฐ','๊ณ ์','์ฉ์ธ']
population = [12312, 123123, 32434, 25345, 34543, 7676,25423, 24545, 34454,44332]
(2) ๋น์ด์๋ ๋ฐ์ดํฐ ํ๋ ์ ์์ฑ
- pd.DataFrame() ํจ์๋ฅผ ์ด์ฉํ์ฌ ์์ฑ
- ๋ณ์๋ก๋ data, columns, index ๋ฑ์ ์ง์ ํ ์ ์์
# ๋น ๋ฐ์ดํฐํ๋ ์ ์์ฑ ๋ง๋ค๊ธฐ
data=pd.DataFrame(columns=['๋์','์ธ๊ตฌ์'], index=range(10)) data
# ๋น ๋ฐ์ดํฐํ๋ ์์ ๋ฐ์ดํฐ ์ฝ์
data['๋์']=city data.์ธ๊ตฌ์ = population data
# ๋์ ๋๋ฆฌ๋ฅผ ์ด์ฉํ ๋ฐ์ดํฐ ํ๋ ์ ์์ฑ
data_dict = {'๋์':city, '์ธ๊ตฌ์':population} data = pd.DataFrame(data_dict) data
#5 ๋ฐ์ดํฐํ๋ ์ ์ ์ฅ
- pd.DataFrame.to_csv() ํจ์๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐํ๋ ์์ csv๋ก ์ ์ฅํจ
pd.DataFrame.to_csv('์ ์ฅ๊ฒฝ๋ก/ํ์ผ๋ช .csv')
- index๊ฐ True์ด๋ฉด DataFrame์ ์ธ๋ฑ์ค๊ฐ ํ๋์ ์ปฌ๋ผ์ผ๋ก ์ถ๊ฐ๋จ
- header๊ฐ False๋ฉด ์ปฌ๋ผ๋ช ์ ์ ์ธํ๊ณ ์ ์ฅ
#6 ์ปฌ๋ผ๊ณผ ๋ก์ฐ ์ถ๊ฐ
- ์์ฑ๋ DataFrame์ ์๋ก์ด ์ปฌ๋ผ๊ฐ ๋ก์ฐ ์ถ๊ฐํ๊ธฐ
# ๋จ์, ์ฌ์ ์ธ๊ตฌ์ ์ปฌ๋ผ ์ถ๊ฐ
man = [ 1233, 12312, 3234, 23432, 23423, 4656, 6786, 8578, 24123, 24556 ]
woman = [ 1234, 23425, 65654, 57547, 2343, 1233, 5647, 8588, 8989, 12344 ]
data'['๋จ์'] = man
data['์ฌ์'] = woman
# ์ธ๊ตฌ ์ ์ดํฉ ๋ก์ฐ ์ถ๊ฐ
(1) ๋ก์ฐ๋ฅผ ์ถ๊ฐํ๊ธฐ ๊ฐ ์ปฌ๋ผ์ ์ดํฉ ๊ตฌํ๊ธฐ
data.sum()
(2) pd.DataFrame.loc[ ]์ ์ด์ฉํ์ฌ ์ถ๊ฐ
- [ ] ์์ ์ถ๊ฐํ ๋ก์ฐ์ ์ธ๋ฑ์ค๋ฅผ ์ ๋ ฅํ ํ ๊ฐ์ ์ถ๊ฐํจ
data.loc[10] = data.sum()
(3) ํน์ ๊ฐ ๋ณ๊ฒฝ
- ํน์ ์์น์ ๊ฐ๋ loc๋ฅผ ์ด์ฉํ์ฌ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํจ
- pd.DataFrame.loc[์ธ๋ฑ์ค, ์ปฌ๋ผ] = ์ํ๋ ๊ฐ ์ผ๋ก ํน์ ์์น๋ฅผ ์ง์ ํ๊ณ ์ํ๋ ๊ฐ ์ ์ฅ
data.loc[ 10, '๋์' ] = '์ดํฉ'
#7 ๋ค์ค ์ปฌ๋ผ, ๋ก์ฐ ์ ํ
# ๋ก์ฐ๋ฅผ ๋ถ๋ถ์ ์ผ๋ก ์ ํ
pd.DataFrame[ ์์ ๋ก์ฐ ๋ฒํธ : ๋ ๋ก์ฐ ๋ฒํธ ]
- ์๋ค๋ก ์์ ๋ฒํธ์ ๋ ๋ฒํธ๋ฅผ ์ ๋ ฅ์ด ๊ฐ๋ฅ
- ๋ ๋ฒํธ์ ๊ฒฝ์ฐ ์์๋ฅผ ์ ๋ ฅํ๋ฉด, ๋์์๋ถํฐ ์์๋งํผ ์ ์ธํ ์์น๊น์ง ํํ
- data[2:-2]๋ผ๋ฉด ์ธ๋ฑ์ค 2๋ถํฐ ๋ฐ์์ ๋๊ฐ๋ฅผ ์ ์ธํ ํ๊น์ง ์ถ๋ ฅ
# ๋ค์ค ์ปฌ๋ผ, ๋ก์ฐ๋ฅผ ์ ํํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ
1) loc : ๋ก์ฐ์ ์ปฌ๋ผ์ ์ธ๋ฑ์ค๋ก ๋ฐ์ดํฐ์ ์ ๊ทผ
pd.DataFrame.loc[[๋ก์ฐ_์ธ๋ฑ์ค1, ๋ก์ฐ_์ธ๋ฑ์ค2,...], [์ปฌ๋ผ_์ธ๋ฑ์ค1, ์ปฌ๋ผ_์ธ๋ฑ์ค2,...]]
pd.DataFrame.loc[[์์_๋ก์ฐ_์ธ๋ฑ์ค:๋_๋ก์ฐ_์ธ๋ฑ์ค], [์์_์ปฌ๋ผ_์ธ๋ฑ์ค:๋_์ปฌ๋ผ_์ธ๋ฑ์ค]]
2) iloc : ๋ก์ฐ์ ์ปฌ๋ผ์ ์์น๋ก ๋ฐ์ดํฐ์ ์ ๊ทผ
pd.DataFrame.iloc[์์_๋ก์ฐ_์์น:๋_๋ก์ฐ_์์น, ์์_์ปฌ๋ผ_์์น:๋_์ปฌ๋ผ_์์น]
pd.DataFrame.iloc[[๋ก์ฐ_์์น1, ๋ก์ฐ_์์น2, ๋ก์ฐ_์์น3...], [์ปฌ๋ผ_์์น1, ์ปฌ๋ผ_์์น2, ์ปฌ๋ผ_์์น3...]]
- ์์ ์์น๋ฅผ ๋น์๋๋ฉด 0๋ถํฐ ์์ํ๊ณ ๋ ์์น๋ฅผ ๋น์๋๋ฉด ๋ง์ง๋ง ์์น๊น์ง ์ฝ์
- ์ด ๋ ์ฃผ์์ ์ผ๋ก ์์น์ ์ธ๋ฑ์ค๊ฐ ๊ฐ์ง ์๋ค๋ ๊ฒ
- data.loc[2:5] ๋ 2,3,4,5 ํ์ ์ฝ์ด์ค์ง๋ง data.iloc[2:5] ๋ 2,3,4 ํ๋ง์ ์ฝ์ด์ด
#8 ํต๊ณ ํจ์
# unique( )
DataFrame[ '์ปฌ๋ผ' ].unique()
- ์ปฌ๋ผ์ ๊ณ ์ ๊ฐ ๋ฆฌ์คํธ ๋ฐํ
# value_counts()
DataFrame[ '์ปฌ๋ผ' ].unique()
- ์ปฌ๋ผ์ ๊ณ ์ ๊ฐ ์นด์ดํธ๋ฅผ ๋ฐํ
# ์์น๋ฅผ ์ด์ฉํ ํจ์
pd.DataFrame.sum() : ๊ฐ ์ปฌ๋ผ์ ํฉ๊ณ๋ฅผ ๋ฐํ
pd.DataFrame.max() : ๊ฐ ์ปฌ๋ผ์ ์ต๋๊ฐ์ ๋ฐํ
pd.DataFrame.idxmax() : ํน์ ์ปฌ๋ผ์ ์ต๋๊ฐ์ ์ธ๋ฑ์ค ๋ฐํ
pd.DataFrame.min() : ๊ฐ ์ปฌ๋ผ์ ์ต์๊ฐ์ ๋ฐํ
pd.DataFrame.idxmin() : ํน์ ์ปฌ๋ผ์ ์ต์๊ฐ์ ์ธ๋ฑ์ค ๋ฐํ
pd.DataFrame.mean() : ๊ฐ ์ปฌ๋ผ์ ํ๊ท ์ ๋ฐํ
pd.DataFrame.median() : ๊ฐ ์ปฌ๋ผ์ ์ค์๊ฐ์ ๋ฐํ
pd.DataFrame.var() : ๊ฐ ์ปฌ๋ผ์ ๋ถ์ฐ์ ๋ฐํ
pd.DataFrame.std() : ๊ฐ ์ปฌ๋ผ์ ํ์คํธ์ฐจ๋ฅผ ๋ฐํ
## ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ์ฌ ์ธ๊ตฌ๊ฐ ๊ฐ์ฅ ๋ง์ ๋์ ์ฐพ๊ธฐ
data.loc[df['์ธ๊ตฌ์'].idmax()]['๋์']
#9 ์ปฌ๋ผ ์ฐ์ ์ฐ์ฐ
- ๊ธฐ์กด์ ๊ฐ์ง๊ณ ์๋ ์ปฌ๋ผ๋ค์ ์ด์ฉํ์ฌ ์๋ก์ด ์ปฌ๋ผ์ ๋ง๋ค ์ ์์
- ํ๋ค์ค์ ์ปฌ๋ผ๊ณผ ์ปฌ๋ผ์ ์ฐ์ ์ฐ์ฐ์๋ฅผ ์ด์ฉํ์ฌ ์ฐ์ฐ์ด ๊ฐ๋ฅ
data['๋จ์+์ฌ์'] = data['๋จ์'] + data['์ฌ์']
→ ๋จ์์ ์ฌ์์ ์๋ฅผ ํฉ์ณ ๋จ์+์ฌ์๋ผ๋ ์ปฌ๋ผ ์์ฑ !!
# abs
- ์ ๋๊ฐ ๊ตฌํ๊ธฐ
#10 ๋น๊ต ์ฐ์ฐ์
- Pandas ์์๋ ==, !=, >, >=, <, <= ์ ๊ฐ์ ๋น๊ต ์ฐ์ฐ์ ์ฌ์ฉ ๊ฐ๋ฅ
# ์ธ๊ตฌ ์ 200๋ง๋ช ์ด์์ ๋์ ์ฐพ๊ธฐ
data['์ธ๊ตฌ์] >= 2000000
→ ๊ฒฐ๊ณผ๋ true, false๋ก ๋ฐํ๋จ
( data['์ธ๊ตฌ์] >= 2000000 ).sum() ํ๋ฉด 200๋ง๋ช ์ด์์ธ ๋์๋ฅผ ์นด์ดํธ ํ ์ ์์
*** 2e + 6 = 2 * 10์ 6์ ๊ณฑ !!!!