์์ธ์ ๋ น์ง๋ (1) - ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ
* ์ฌ์ฉํ Tool : Google Colab
* ๋ฐ์ดํฐ ์ถ์ฒ : ์์ธ์ ์ด๋ฆฐ๋ฐ์ดํฐ ๊ด์ฅ
https://data.seoul.go.kr/dataList/OA-1321/S/1/datasetView.do
์์ธํน๋ณ์ '๊ด์ง๊ตฌ'์ ๋น ๋ฐ์ดํฐ ๋ถ์ ๊ณต๋ชจ์ ์ผ๋ก๋ถํฐ ์ถ๋ฐํ๋ค.
ํ์ฌ๋ฆ์ ๊ณ ์จ๋ค์ต๊ณผ ๊ณตํด๋ฅผ ์ค์ด๋ ๋ฐ ๋์๋๋ '๋ น์งํ'์ ํจ๊ณผ๋ฅผ ๋ณด๊ณ ์ ํ๋ค.
๊ด์ง๊ตฌ ํ๋์ ์์น๊ตฌ์ ๋ํด ๋ณด๊ธฐ ์ ์, ์์ธ์ ๋ด ๋ น์งํ๊ฐ ์ด๋ป๊ฒ ๋์ด์๋์ง ํ์ธํ๊ณ ์ ํ ๊ฒ์ด ํด๋น ๋ถ์์ ๋ชฉ์ ์ด๋ค.
0. ํ์ผ ๋ถ๋ฌ์ค๊ธฐ
1. ์ฌ์ฉ๋์ง ์๋ ์นผ๋ผ ์ ๊ฑฐ
2. ํ(type) ๋ณํ
3. object(๋ฌธ์์ด) ๋ณ์ ํ์ธ ๋ฐ ์์
์ฌ์ฉ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ง๋ง ํ์๋ ๊ตฌ๊ธ์์ ์ ๊ณตํ๋ ์ฝ๋ฉ์ ์ฌ์ฉํ๋ค.
๊ตฌ๊ธ ์ฝ๋ฉ์ผ๋ก ๋ฌธ์ํ์ผ ๊ฐ์ ธ์ค๋ ค๋ฉด ๊ตฌ๊ธ๋๋ผ์ด๋ธ์ ๋ฌธ์ํ์ผ์ ์ ์ฅํด์ฃผ์
# ํ์ผ ๋ถ๋ฌ์ค๊ธฐ
path = r'/content/drive/MyDrive/data' # ํ์ผ ๋ค์ด์๋ ๊ฒฝ๋ก
file = r'/แแ
ฉแจแแ
ตแแ
ข_แแ
ฆแแ
ตแแ
ฅ/แแ
ฅแแ
ฎแฏแแ
ต แแ
ฉแจแแ
ตแแ
ข แแ
ฑแแ
ตแแ
ฅแผแแ
ฉ (แแ
ชแแ
ญแแ
จ_ WGS1984).csv'
import pandas as pd
green_df = pd.read_csv(path+file, encoding = 'EUC-KR')
ํ์ผ ์ธ์ฝ๋ฉ ํ์ ์ฐพ๋ ๋ฐฉ๋ฒ
# chardet ๋ชจ๋ ์ค์นํด์ผ ํจ (pip install chardet)
import chardet # ๋ฌธ์์ด ์ธ์ฝ๋ฉ ์ฐพ์์ฃผ๋ ๋ชจ๋
def detect_encoding(file_path):
with open(file_path, 'rb') as f:
result = chardet.detect(f.read())
return result['encoding']
detect_encoding(ํ์ผ๊ฒฝ๋ก๊ฐ์ฒด)
๋ฐ์ดํฐํ๋ ์์ผ๋ก ๋ถ๋ฌ์จ ํ ์ด๋ธ์ ํ์ธํ๊ณ , ๋ชจ๋ ๊ฒฐ์ธก๋์ด ์๊ฑฐ๋ ์ฌ์ฉํ์ง ์์ ์นผ๋ผ์ ์ ๊ฑฐํด์ค๋ค.
# ์นผ๋ผ ์ ๊ฑฐ
green_df=green_df.drop(['๋
น์ง๋์กฐ์ฑ๋
๋','์์ฑ์ผ','์กฐ๊ฒฝ๋','์ฌ์งํ์ผ๋ช
'], axis=1 )
# drop ๋์์ด ์นผ๋ผ์ธ ๊ฒฝ์ฐ axis = 1
green_df
์ถํ์ ๋ฐ์ดํฐ ์๋,๊ฒฝ๋ ์ขํ๋ฅผ ๋ฐํ์ผ๋ก ์ง๋์ ๋งตํํ ๊ฒ์ด๋ค.
information์ ํ์ธํด๋ณด๋ ์๋,๊ฒฝ๋๊ฐ object์ด๋ค. float๋ก ๋ฐ๊ฟ์ค๋ค.
์ฒ์์ ๊ณ์ ์ค๋ฅ ๋ด๋๋ฐ ๋ฉ์ธ์ง ์ฝ์ด๋ณด๋ ๊ณต๋ฐฑ์ด ์๋ค๋ ๋ฏํ ๋ฉ์ธ์ง์ฌ์ ํ์ธํ๊ณ ๊ณต๋ฐฑ-> ๊ฒฐ์ธก์น๋ก ๋ฐ๊ฟ์ฃผ๊ณ ์งํํ๋ค.
์ค๋ฅ๋ฉ์ธ์ง : ValueError: Unable to parse string " "
# ๊ณต๋ฐฑ ''์ NaN์ผ๋ก ๋ฐ๊พธ๊ณ ๊ฒฐ์ธก์น ์ ๊ฑฐ
green_df[green_df['๊ฒฝ๋']==' ']= pd.NA # ๊ณต๋ฐฑ์ ๊ฒฐ์ธก์น๋ก
green_df.dropna(subset=['์๋','๊ฒฝ๋'], inplace=True)
green_df[['์๋','๊ฒฝ๋' ]] = green_df[['์๋','๊ฒฝ๋' ]].astype(float)
green_df.info()
์์๋ ๋ น์ง๋๋ถ๋ฅ ๋ณ์์ด๋ค.
(๋ฐ์ดํฐ ์์ฑ์๊ฐ ์ฌ๋ฟ์ด์๋์ง, ์คํ์ ๋ค๋ฅธ์ด๋ฆ์ ๊ณตํต๋ ๊ฐ์ด ๋ง์๋ค.)
# ํ์ธ
green_df['๋
น์ง๋๋ถ๋ฅ'].value_counts()
# ๋ณ๊ฒฝ
green_df['๋
น์ง๋๋ถ๋ฅ']= green_df['๋
น์ง๋๋ถ๋ฅ'].str.replace(' ','๋ฏธ๋ถ๋ฅ')
green_df['๋
น์ง๋๋ถ๋ฅ']= green_df['๋
น์ง๋๋ถ๋ฅ'].str.replace('๋๋ก๋ณ๋
น์ง','๋๋ก๋ณ๋
น์ง')
green_df['๋
น์ง๋๋ถ๋ฅ']= green_df['๋
น์ง๋๋ถ๋ฅ'].str.replace('๋
ธ๋ก๋ณ๋
น์ง','๋๋ก๋ณ๋
น์ง')
green_df['๋
น์ง๋๋ถ๋ฅ']= green_df['๋
น์ง๋๋ถ๋ฅ'].str.replace('๋๋ก๋ณ๋
น์ง๋','๋๋ก๋ณ๋
น์ง')
green_df['๋
น์ง๋๋ถ๋ฅ']= green_df['๋
น์ง๋๋ถ๋ฅ'].str.replace('์ผํฐ','ํด์๊ณต๊ฐ')
green_df['๋
น์ง๋๋ถ๋ฅ']= green_df['๋
น์ง๋๋ถ๋ฅ'].str.replace('๋
ธ๋ณ๋ถ๋ฆฌ.*','๋
ธ๋ณ๋ถ๋ฆฌ๋', regex = True)
green_df['๋
น์ง๋๋ถ๋ฅ']= green_df['๋
น์ง๋๋ถ๋ฅ'].str.replace('์ํฌ๋ฆฌ.*','์ํฌ๋ฆฌ๋
น์ง', regex = True)
green_df['๋
น์ง๋๋ถ๋ฅ']= green_df['๋
น์ง๋๋ถ๋ฅ'].str.replace('.*๊ณต๊ณต.*','๊ณต๊ณต๊ฑด๋ฌผ', regex=True)
green_df['๋
น์ง๋๋ถ๋ฅ']= green_df['๋
น์ง๋๋ถ๋ฅ'].str.replace('.*ํ์ฒ๋ณ.*','ํ์ฒ๋ณ', regex=True)
green_df['๋
น์ง๋๋ถ๋ฅ']= green_df['๋
น์ง๋๋ถ๋ฅ'].str.replace('.*์งํ์ฒ .*','์งํ์ฒ ํ๊ธฐ๊ตฌ์ฃผ๋ณ', regex=True)
green_df['๋
น์ง๋๋ถ๋ฅ']= green_df['๋
น์ง๋๋ถ๋ฅ'].str.replace('.*๊ฑด๋ฌผ์กฐ.*','๊ฑด๋ฌผ์กฐ๊ฒฝ', regex=True)
green_df['๋
น์ง๋๋ถ๋ฅ']= green_df['๋
น์ง๋๋ถ๋ฅ'].str.replace('.*๋ฌธํ์ฌ.*','๋ฌธํ์ฌ์ฃผ๋ณ', regex=True)
green_df['๋
น์ง๋๋ถ๋ฅ'].value_counts()
ํ์ผ ์ธ์ฝ๋ฉ ํ์ ์ฐพ๊ธฐ (0) | 2024.05.07 |
---|---|
์ฝ๋ฉ(Colab) ์์ Matplotlib ๊ทธ๋ํ ํ๊ธ๊นจ์ง ํ์ ํด๊ฒฐ (0) | 2024.04.28 |
์์ธ์ ๋ น์ง๋ (2) - folium์ ํ์ฉํ ์ง๋ ์๊ฐํ (2) | 2024.04.28 |