์์ ํ ์ 1์ ํ์ ํ์ด๋๊ฐ ๋ ์์ฃผ ๋ฑ์ฅํ๋ ๊ฒ๋ค์ ์ ๋ฆฌํด๋ณด์์ต๋๋ค!
๊ทธ๋ผ ์์!
1. ์ค๋ฆ์ฐจ์, ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
๋ฐ์ดํฐํ๋ ์์ ๋ค๋ฃฐ ๋ ์ค๋ฆ์ฐจ์์ด๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์์ฃผ ๋ฑ์ฅํ๋ค.
์ค๋ฆ์ฐจ์(์์์๋ถํฐ)์ผ๋ก ์ ๋ ฌํ๋ ค๋ฉด ํน๋ณํ ์ต์ ์ ์ฃผ์ง์์๋ ๋์ง๋ง ๋ด๋ฆผ์ฐจ์(ํฐ์๋ถํฐ)์ผ๋ก ์ ๋ ฌํ๊ณ ์ถ๋ค๋ฉด
ascending=False๋ผ๋ ์ต์ ์ ์ถ๊ฐํด์ฃผ์ด์ผ ํ๋ค.
# ๋ฐ์ดํฐํ๋ ์๋ช
.sort_values('์ปฌ๋ผ๋ช
', ascending=False, inplace=True)
# data์ 'CRIM'์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ๋ผ
data.sort_values('CRIM', ascending=False, inplace=True)
inplace=True ์ต์ ์ ์ถ๊ฐํ๋ฉด data(๋ฐ์ดํฐํ๋ ์๋ช )์ด ์ต์ ์ ๋ง๊ฒ ๋ฐ๋๋ค.
2. ํ๊ท /ํ์คํธ์ฐจ/์ค์๊ฐ/์ ๋๊ฐ ๊ตฌํ๊ธฐ
์ด๋ ๊ฒ ์์ฃผ ๋ฑ์ฅํ๋ ๋ค๊ฐ์ง๋ ๊ธฐ์ตํ๊ณ ์๋ ๊ฒ์ด ์ข๋ค.
# ํ๊ท
data.mean()
# ์ค์๊ฐ
data.median()
# ํ์คํธ์ฐจ
data.std()
# ์ ๋๊ฐ
data.abs()
3. ์ด์๊ฐ
๋ฐ์ดํฐ์ ํน์ ์นผ๋ผ์์ ๋ณ์์ ๋ํ ์ด์์น ๊ธฐ์ค์ IQR๋ก ํ๋ค๋ ๋ฌธ์ ๊ฐ ๋ฑ์ฅํ๋ค๋ฉด ๋ฐ๋ก ์ด ์ฝ๋๋ฅผ ์ ์ฉ์ํฌ ์ ์๋ค.
Q1=data['CRIM'].quantile(q=0.25)
Q3=data['CRIM'].quantile(q=0.75)
IQR=Q3-Q1
IQR์ ๊ตฌํ ํ์ IQR์ 1.5๋ฐฐ๋ณด๋ค ํฐ ๊ฐ๊ณผ ์์ ๊ฐ์ ์ ๊ฑฐํด์ผํ๋ค.
data_IQR=data[(data['CRIM']>=Q1-1.5*IQR) & (data['CRIM'<=Q3+1.5*IQR)]
# ๊ฒฐ์ธก์น ์ฒ๋ฆฌ ํ ๋ฐ์ดํฐ์
๋ช
data_IQR
์ด๋ ๊ฒ ๋ฐ์ดํฐ์์ ์กฐ๊ฑด์ ๋ฐ๋ผ ํ์ ์ถ์ถํ ์ ์๋ ์ฝ๋์ ์ต์ํด์ ธ์ผํ๋ค!!
4. ๊ฒฐ์ธก๊ฐ ๋์น
.fillna(data['์ปฌ๋ผ๋ช
'].mean())
data[['Ozone']]=data[['Ozone']].fillna(ozone_median)
- ํน์ ์ด์ ๊ฒฐ์ธก๊ฐ dropna
data.dropna(subset=['Solar.R'], inplace=True)
5. int๋ณํ
int(๋ณ์)๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ์ค์๊ฐ ์ ์๋ก ์ถ๋ ฅ๋๋ค.
์๋ฅผ๋ค์ด ํ ๊ฐ์์ 70%๋ง ๋ฝ์ train๋ฐ์ดํฐ๋ก ์ฌ์ฉํด์ผํ๋ ๊ฒฝ์ฐ ํ๊ฐ์*0.7์ ํ์ ๋,
์ ์๋ก ๋ฑ ๋จ์ด์ง๋ ๊ฒ์ด ์๋๋ผ ์์์ ์ผ๋ก ๊ณ์ฐ๋๋ค๋ฉด int(๋ณ์) ์ต์ ์ ์ฃผ๋ฉด ๋๋ค.
6. ~๋ณ๋ก(groupby()ํจ์)
mean=data.groupby('age').mean()
7. ๊ฐ๋์ฒด(replaceํจ์) -> object๋ฅผ ์ซ์๋ก ๋์ฒดํ๊ธฐ
# ๋ฐ์ดํฐ์
๋ช
.replace({"์ปฌ๋ผ๋ช
":{"๋ฌธ์":"๋์ฒดํ ๋ฌธ์"}}, inplace=True)
data.replace('loan_status':{'COLLECTION_PAIDOFF':4}}, inplace=True)
data['loan_status']=pd.to_numeric(๋ฐ์ดํฐํ๋ ์๋ช
['์ปฌ๋ผ๋ช
'])
8. value๋ณ๋ก ๊ฐ์ ์ธ๊ธฐ
group=data[['item_id']].value_counts()
์ค๋ช ์..๋์ค์ ์ฐจ์ฐจ ์ฑ์ฐ๊ฒ ์ต๋๋ค..!
์ผ๋จ ์ฌ๊ธฐ๊น์ง!

'๐ Study > ๋น ๋ฐ์ดํฐ ๋ถ์๊ธฐ์ฌ ์ค๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์์ ํ ์ 1์ ํ์ ํ์ด๋๊ฐ ๋ ์์ฃผ ๋ฑ์ฅํ๋ ๊ฒ๋ค์ ์ ๋ฆฌํด๋ณด์์ต๋๋ค!
๊ทธ๋ผ ์์!
1. ์ค๋ฆ์ฐจ์, ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
๋ฐ์ดํฐํ๋ ์์ ๋ค๋ฃฐ ๋ ์ค๋ฆ์ฐจ์์ด๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์์ฃผ ๋ฑ์ฅํ๋ค.
์ค๋ฆ์ฐจ์(์์์๋ถํฐ)์ผ๋ก ์ ๋ ฌํ๋ ค๋ฉด ํน๋ณํ ์ต์ ์ ์ฃผ์ง์์๋ ๋์ง๋ง ๋ด๋ฆผ์ฐจ์(ํฐ์๋ถํฐ)์ผ๋ก ์ ๋ ฌํ๊ณ ์ถ๋ค๋ฉด
ascending=False๋ผ๋ ์ต์ ์ ์ถ๊ฐํด์ฃผ์ด์ผ ํ๋ค.
# ๋ฐ์ดํฐํ๋ ์๋ช
.sort_values('์ปฌ๋ผ๋ช
', ascending=False, inplace=True)
# data์ 'CRIM'์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ๋ผ
data.sort_values('CRIM', ascending=False, inplace=True)
inplace=True ์ต์ ์ ์ถ๊ฐํ๋ฉด data(๋ฐ์ดํฐํ๋ ์๋ช )์ด ์ต์ ์ ๋ง๊ฒ ๋ฐ๋๋ค.
2. ํ๊ท /ํ์คํธ์ฐจ/์ค์๊ฐ/์ ๋๊ฐ ๊ตฌํ๊ธฐ
์ด๋ ๊ฒ ์์ฃผ ๋ฑ์ฅํ๋ ๋ค๊ฐ์ง๋ ๊ธฐ์ตํ๊ณ ์๋ ๊ฒ์ด ์ข๋ค.
# ํ๊ท
data.mean()
# ์ค์๊ฐ
data.median()
# ํ์คํธ์ฐจ
data.std()
# ์ ๋๊ฐ
data.abs()
3. ์ด์๊ฐ
๋ฐ์ดํฐ์ ํน์ ์นผ๋ผ์์ ๋ณ์์ ๋ํ ์ด์์น ๊ธฐ์ค์ IQR๋ก ํ๋ค๋ ๋ฌธ์ ๊ฐ ๋ฑ์ฅํ๋ค๋ฉด ๋ฐ๋ก ์ด ์ฝ๋๋ฅผ ์ ์ฉ์ํฌ ์ ์๋ค.
Q1=data['CRIM'].quantile(q=0.25)
Q3=data['CRIM'].quantile(q=0.75)
IQR=Q3-Q1
IQR์ ๊ตฌํ ํ์ IQR์ 1.5๋ฐฐ๋ณด๋ค ํฐ ๊ฐ๊ณผ ์์ ๊ฐ์ ์ ๊ฑฐํด์ผํ๋ค.
data_IQR=data[(data['CRIM']>=Q1-1.5*IQR) & (data['CRIM'<=Q3+1.5*IQR)]
# ๊ฒฐ์ธก์น ์ฒ๋ฆฌ ํ ๋ฐ์ดํฐ์
๋ช
data_IQR
์ด๋ ๊ฒ ๋ฐ์ดํฐ์์ ์กฐ๊ฑด์ ๋ฐ๋ผ ํ์ ์ถ์ถํ ์ ์๋ ์ฝ๋์ ์ต์ํด์ ธ์ผํ๋ค!!
4. ๊ฒฐ์ธก๊ฐ ๋์น
.fillna(data['์ปฌ๋ผ๋ช
'].mean())
data[['Ozone']]=data[['Ozone']].fillna(ozone_median)
- ํน์ ์ด์ ๊ฒฐ์ธก๊ฐ dropna
data.dropna(subset=['Solar.R'], inplace=True)
5. int๋ณํ
int(๋ณ์)๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ์ค์๊ฐ ์ ์๋ก ์ถ๋ ฅ๋๋ค.
์๋ฅผ๋ค์ด ํ ๊ฐ์์ 70%๋ง ๋ฝ์ train๋ฐ์ดํฐ๋ก ์ฌ์ฉํด์ผํ๋ ๊ฒฝ์ฐ ํ๊ฐ์*0.7์ ํ์ ๋,
์ ์๋ก ๋ฑ ๋จ์ด์ง๋ ๊ฒ์ด ์๋๋ผ ์์์ ์ผ๋ก ๊ณ์ฐ๋๋ค๋ฉด int(๋ณ์) ์ต์ ์ ์ฃผ๋ฉด ๋๋ค.
6. ~๋ณ๋ก(groupby()ํจ์)
mean=data.groupby('age').mean()
7. ๊ฐ๋์ฒด(replaceํจ์) -> object๋ฅผ ์ซ์๋ก ๋์ฒดํ๊ธฐ
# ๋ฐ์ดํฐ์
๋ช
.replace({"์ปฌ๋ผ๋ช
":{"๋ฌธ์":"๋์ฒดํ ๋ฌธ์"}}, inplace=True)
data.replace('loan_status':{'COLLECTION_PAIDOFF':4}}, inplace=True)
data['loan_status']=pd.to_numeric(๋ฐ์ดํฐํ๋ ์๋ช
['์ปฌ๋ผ๋ช
'])
8. value๋ณ๋ก ๊ฐ์ ์ธ๊ธฐ
group=data[['item_id']].value_counts()
์ค๋ช ์..๋์ค์ ์ฐจ์ฐจ ์ฑ์ฐ๊ฒ ์ต๋๋ค..!
์ผ๋จ ์ฌ๊ธฐ๊น์ง!
