๋ฌ๋์คํผ์ฆ ์์ ์ ๋ฆฌ
< ์ด์ ๊ธ >
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๋ ์ ๊ธฐ๋ก๋ ์ด๋ฆ์ด ๊ฐ์ฅ ๋ง๋ค!
'๋ฐ์ดํฐ ๋ถ์ ์ด๋ก > pandas' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[python pandas] 4. pandas ๊ธฐ์ด ์ฌ์ฉ (4) - ๋ฏธ๊ตญ ์ด๋ฆ ๋ถ์ ํด๋ณด๊ธฐ (0) | 2021.08.05 |
---|---|
[python pandas] 2. pandas ๊ธฐ์ด ์ฌ์ฉ (2) - ์ถ๊ฐ, ๋ณํฉ, ์ ์ฅ (0) | 2021.08.04 |
[python pandas] 1. pandas ๊ธฐ์ด ์ฌ์ฉ (1) (0) | 2021.08.04 |