Study_note(zb_data)/EDA
์คํฐ๋ ๋ ธํธ (Analysis Seoul CCTV with population)
KloudHyun
2023. 8. 6. 00:07
๐ ๋ฐ์ดํฐ ์ฝ๊ธฐ
- import pandas as pd
- pandas๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก import
- pandas.read_csv(ํ์ฅ์) ํจ์๋ฅผ ์ด์ฉํ์ฌ ๋ค์ํ ์์ ํ์ฅ์๋ฅผ ๋ถ๋ฌ์ฌ ์ ์๋ค.
๐ฉCCTV_Seoul ๋ฐ์ดํฐ ํ์ธํ๊ธฐ
- columns ํจ์๋ฅผ ํตํด ์ปฌ๋ผ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ์ ์๋ค.
- rename ํจ์๋ฅผ ํตํด ๊ธฐ๊ด๋ช ์ปฌ๋ผ์ ๊ตฌ๋ณ๋ก ์ด๋ฆ ๋ณ๊ฒฝ
๐ฉ Seoul_Population ๋ฐ์ดํฐ ํ์ธํ๊ธฐ
- header (index๋ฅผ ๋ช๋ฒ์งธ๋ถํฐ ๋ถ๋ฌ์ฌ ๊ฒ์ธ์ง?)
- usecols (์ปฌ๋ผ์ ๋ช๋ฒ์ ์ฌ์ฉํ ๊ฒ์ธ์ง?)
- ์ค์ csv ํ์ผ์ ์ด์ด๋ณด๊ณ , ๋ฐ์ดํฐ๋ฅผ ํ์ธํ๋ ์์ ์ด ํ์
- rename ํจ์๋ฅผ ํตํด column๋ค์ ์ด๋ฆ์ ๋ณ๊ฒฝ
๐ฉCCTV_Seoul ๋ฐ์ดํฐ ํ์ธํ๊ธฐ 2
- sort ํจ์๋ฅผ ์ด์ฉํ์ฌ, ํ์ธํ๊ณ ์ถ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฒด์ ์ผ๋ก ์ ๋ ฌํ๋ค
- "์๊ณ" ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ์ก๊ณ ์ค๋ฆ์ฐจ์ & ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
- data_name.sort_values(by = "column_name", ascending=True or False, inplace=True)
- ๋ฐ์ดํฐ ์ถ๊ฐํด๋ณด๊ธฐ
- data_name["column_name"] = data
- ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์ถ๊ฐ, ์์ผ๋ฉด ์์
- CCTV์ ์ต๊ทผ ์ฆ๊ฐ์จ ์ปฌ๋ผ์ ์ถ๊ฐ
- 2016 + 2015 + 2014๋ ์ปฌ๋ผ / 2013๋ ๋ ์ด์ ์ปฌ๋ผ
- ๊ทธ ์ดํ ๋ฐ์ดํฐ๋ฅผ ์ต๊ทผ ์ฆ๊ฐ์จ ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก sort (๋ด๋ฆผ์ฐจ์)
๐ฉ Seoul_Population ๋ฐ์ดํฐ ํ์ธํ๊ธฐ 2
- ๋งจ ์ ํฉ๊ณ index๋ฅผ ์ ๊ฑฐ
- ์ฌ๊ธฐ์๋ drop ํจ์๋ฅผ ์ฌ์ฉ (axis ๊ธฐ๋ณธ๊ฐ์ 0, ๊ฐ๋ก๊ฐ ์ ๊ฑฐ)
- unique method๋ฅผ ํ์ฉํ์ฌ ์ค๋ณต๋ ๋ฐ์ดํฐ๊ฐ ์๋์ง ํ์ธ
- ์ธ๊ตญ์ธ ๋น์จ, ๊ณ ๋ น์ ๋น์จ ์ปฌ๋ผ ์ถ๊ฐ
๐ฉ CCTV_Seoul, pop_Seoul ๋ฐ์ดํฐ ํฉ์น๊ธฐ
- merge ํจ์๋ฅผ ์ด์ฉ, "๊ตฌ๋ณ"์ ๊ธฐ์ค์ผ๋ก ํฉ์น๊ธฐ
- pandas.merge(CCTV_Seoul, Pop_seoul, on="๊ตฌ๋ณ")
- on="column"์ ํ์ฉํ์ฌ column์ ๊ธฐ์ค์ผ๋ก ์ก๊ณ ๋ฐ์ดํฐ๋ฅผ ํฉ์น๋ค
๐ฉ ๋ถํ์ํ ๋ฐ์ดํฐ ์ปฌ๋ผ ์ญ์
- ๋ ๋๋ณ CCTV ๋ฐ์ดํฐ ์๋ ํ์์์ผ๋ฏ๋ก ์ญ์
- set_index() ํจ์ ํ์ฉ
- ์ ํํ ์ปฌ๋ผ์ ๋ฐ์ดํฐ ํ๋ ์์ ์ธ๋ฑ์ค๋ก ์ง์
- data_name.set_index("column_name")
- inplace=True๋ฅผ ์ค์ผ ๋ณ๊ฒฝ๋ ๊ฐ์ด ์ ์ฉ์ด ๋๋ค
๐ฉ ์๊ด๊ณ์ ํ์ธ
- corr() / correlation์ ์ฝ์
- data_name.corr()
- ์๋ก์ ์๊ด๊ณ์๊ฐ 0.2 ์ด์์ธ ๋ฐ์ดํฐ๋ฅผ ๋น๊ต
๐ฉ ์ธ๊ตฌ์์ CCTV ๊ฐ์์ ์๊ด๊ด๊ณ
- "CCTV ๋น์จ"์ ๊ธฐ์ค์ผ๋ก value๋ค์ sort.
๐ฉ ์ปฌ๋ผ ์๊ฐํ ํ๊ธฐ
- ๊ฐ์ฅ CCTV๊ฐ ๋ง์ ๊ตฌ
- ์ธ๊ตฌ์ ๋๋น CCTV ๋น์จ
๐ฉ ๋ฐ์ดํฐ ๊ฒฝํฅ ํ์ํ๊ธฐ
- ์ธ๊ตฌ์์ ์๊ณ ์ปฌ๋ผ์ผ๋ก scatter plot ๊ทธ๋ฆฌ๊ธฐ
๐ฉ Numpy๋ฅผ ์ด์ฉํ 1์ฐจ์ ์ง์ ๋ง๋ค๊ธฐ
- np.polyfit() : ์ง์ ์ ๊ตฌ์ฑํ๊ธฐ ์ํ ๊ณ์๋ฅผ ๊ณ์ฐ
- np.poly1d() : polyfit์ผ๋ก ์ฐพ์ ๊ณ์๋ก ํ์ด์ฌ์์ ์ฌ์ฉํ ์ ์๋ ํจ์๋ก ๋ง๋ค์ด์ฃผ๋ ๊ธฐ๋ฅ
- ๊ธฐ์ค์ ์ก๊ณ np.polyfit() ํจ์์ ๋ฃ์ด์ค๋ค (x, y ๊ฐ ํ์)
- ํจ์์ ๋ฃ์ด์ค ๊ฐ์ polyid() ํจ์์ ๋์
- ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ํ ์ ์๋ค.
- ๊ฒฝํฅ์ ์ ๊ทธ๋ฆฌ๊ธฐ ์ํ x ๋ฐ์ดํฐ ์์ฑ
- np.linspace(a, b, n)
- a๋ถํฐ b๊น์ง n๊ฐ์ ๋ฑ๊ฐ๊ฒฉ ๋ฐ์ดํฐ๋ฅผ ์์ฑ
- ์ด์ ์ ๋ง๋ค์๋ scatter ๊ทธ๋ํ์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ
๐ฉ ๊ฒฝํฅ๊ณผ์ ์ค์ฐจ ๋ง๋ค๊ธฐ
- ๊ฒฝํฅ(trend)๊ณผ์ ์ค์ฐจ๋ฅผ ๋ง๋ค์
- ๊ฒฝํฅ์ f1 ํจ์์ ํด๋น ์ธ๊ตฌ๋ฅผ ์ ๋ ฅ
- f1(data_result["์ธ๊ตฌ์"])
- ์ค์ฐจ ์ปฌ๋ผ์ ๋ด๋ฆผ์ฐจ์, ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
- ์ฐ์ธก์ ์ปฌ๋ฌ๋งต ๋ฐ์ดํฐ ์ ์
- for๋ฌธ์ ์ด์ฉํ์ฌ ์ค์ฐจ ๋ฐ์ดํฐ ์์ 5๊ฐ, ํ์ 5๊ฐ ์ธ๋ฑ์ค์ ์ด๋ฆ ํ์ํ๊ธฐ