๋ฐ์ดํ„ฐ๋ถ„์„ 7

[python] ํŒ๋‹ค์Šค(Pandas)์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ดํ•ด

ํŒ๋‹ค์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ ํ˜•ํƒœ๋กœ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ๋กœ ์ •๋ฆฌํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ๋ณ€์ˆ˜๋ฅผ ๋ฐฐ์—ด๋กœ ๋‹ค๋ฃจ๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ๋ฐ, ์ด๋ฅผ ๋ณด๋‹ค ํŽธ๋ฆฌํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ตฌ์กฐ์ฒด์™€ ํด๋ž˜์Šค์™€ ๊ฐ™์€ ๊ฐœ๋…์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํŒ๋‹ค์Šค๋Š” ์ด๋Ÿฌํ•œ ๊ฐœ๋…๋“ค์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๋ถ„์„ํ•˜๋Š” ๊ณผ์ •์„ ๋‹จ์ˆœํ™”์‹œ์ผœ์ค€๋‹ค. ๋น…๋ฐ์ดํ„ฐ ๋ถ„์„์—์„œ ํŒ๋‹ค์Šค๋Š” ํ•„์ˆ˜์ ์ธ ๋„๊ตฌ๋กœ ์ž๋ฆฌ๋งค๊น€ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ 2์ฐจ์› ํ‘œ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ณ  ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋‹ค.    ํŒ๋‹ค์Šค(Pandas)๋ž€ ๋ฌด์—‡์ผ๊นŒ?ํŒ๋‹ค์Šค(Pandas)๋Š” ํŒŒ์ด์ฌ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์‰ฝ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ , ์ •๋ฆฌํ•˜๋ฉฐ, ๋ถ„์„ํ•˜๋Š” ์ž‘์—…์„ ๊ฐ„ํŽธํ•˜..

Python 2024.05.12

[python] cmap(Color Map)๊ณผ ๋žœ๋ค ๋ฐ์ดํ„ฐ ์‚ฐ์ ๋„ ๊ทธ๋ฆฌ๊ธฐ - Matplotlib ํ™œ์šฉ

Python์„ ์‚ฌ์šฉํ•˜์—ฌ Matplotlib์„ ์ด์šฉํ•ด ์‚ฐ์ ๋„๋ฅผ ๊ทธ๋ฆฌ๋Š” ๊ณผ์ •์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์—ฌ๊ธฐ์„œ ์‚ฐ์ ๋„๋Š” ๋ฌด์ž‘์œ„๋กœ ์ƒ์„ฑ๋œ ์ ๋“ค์„ ๊ทธ๋ž˜ํ”„ ์ƒ์— ๋‚˜ํƒ€๋‚ธ๋‹ค.    ๋žœ๋ค ๋ฐ์ดํ„ฐ์˜ ์‚ฐ์ ๋„๋จผ์ €, ์ฝ”๋“œ๋Š” x, y, size๋ผ๋Š” ์„ธ ๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค. ์ด ๋ฆฌ์ŠคํŠธ๋“ค์€ ๊ฐ๊ฐ x์ขŒํ‘œ, y์ขŒํ‘œ, ์ ์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.import matplotlib.pyplot as pltimport randomx=[]y=[]size=[]for i in range(100): x.append(random.randint(50,100)) y.append(random.randint(50,100)) size.append(random.randint(10,100))plt.scatter(x, y ,s=size)plt.show() ๋‹ค์Œ์œผ๋กœ, ๋ฐ˜๋ณต๋ฌธ์„ ํ†ต..

Python 2024.05.12

[python] pie ์ฐจํŠธ๋ฅผ ํ™œ์šฉํ•œ ์ œ์ฃผ๋„ ์„ฑ๋ณ„ ์ธ๊ตฌ ๋ถ„ํฌ - Matplotlib ํ™œ์šฉ

์ œ์ฃผ๋„ ์„ฑ๋ณ„ ์ธ๊ตฌ ํŒŒ์ด ์ฐจํŠธ๋กœ ์‹œ๊ฐํ™”์ด ์ฝ”๋“œ๋Š” '์ œ์ฃผํŠน๋ณ„์ž์น˜๋„'์˜ ๋‚จ์„ฑ๊ณผ ์—ฌ์„ฑ์˜ 0์„ธ๋ถ€ํ„ฐ 100์„ธ๊นŒ์ง€์˜ ์ธ๊ตฌ ๋ถ„ํฌ๋ฅผ ํŒŒ์ด ์ฐจํŠธ๋กœ ์‹œ๊ฐํ™”ํ•˜๋Š” ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋จผ์ € CSV ํŒŒ์ผ์„ ์ฝ์–ด์˜จ ํ›„, '์ œ์ฃผํŠน๋ณ„์ž์น˜๋„'์ธ ํ–‰์„ ์ฐพ๋Š”๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ, ํ•ด๋‹น ํ–‰์—์„œ ๋‚จ์„ฑ ๋ฐ์ดํ„ฐ์™€ ์—ฌ์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ๊ฐ male ๋ฆฌ์ŠคํŠธ์™€ female ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•œ๋‹ค. ๋‚จ์„ฑ ๋ฐ์ดํ„ฐ๋Š” ์Œ์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ €์žฅํ•˜๊ณ , ์—ฌ์„ฑ ๋ฐ์ดํ„ฐ๋Š” ์–‘์ˆ˜๋กœ ์ €์žฅํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ break๋ฌธ์€ '์ œ์ฃผํŠน๋ณ„์ž์น˜๋„' ํ–‰์„ ์ฐพ์€ ํ›„์—๋Š” ๋” ์ด์ƒ ๋‹ค์Œ ํ–‰์„ ์ฝ์ง€ ์•Š๊ณ  ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ๊ทธ ํ›„, plt.pie([10,20])๋Š” ๋‚จ์„ฑ๊ณผ ์—ฌ์„ฑ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋‚จ์„ฑ๊ณผ ์—ฌ์„ฑ์˜ ์ด ํ•ฉ๊ณ„๋ฅผ ๊ฐ๊ฐ 10๊ณผ 20์œผ๋กœ ์ž„์˜๋กœ ์„ค์ •ํ•˜์—ฌ ํŒŒ์ด ์ฐจํŠธ๋ฅผ ๊ทธ๋ฆฐ๋‹ค. ์ด๋Š” ์‹ค์ œ ๋‚จ์„ฑ๊ณผ ์—ฌ์„ฑ..

Python 2024.05.12

[python] ๊ตฌ๊ธ€ ์ฝ”๋žฉ์„ ํ™œ์šฉํ•œ ์ง€์—ญ๋ณ„ ๋‚จ๋…€ ์ธ๊ตฌ์ˆ˜ ๋น„์œจ ๋ฐ์ดํ„ฐ ๋ถ„์„ - Matplotlib ํ™œ์šฉ

์ด์ „์—๋Š” ์—ฐ๋ น๋ณ„๋กœ 0์„ธ๋ถ€ํ„ฐ 100์„ธ๊นŒ์ง€์˜ ์ธ๊ตฌ ํ˜„ํ™ฉ์„ ์‹œ๊ฐํ™”ํ–ˆ๋˜ ๊ฒƒ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ, ์ด๋ฒˆ์—๋Š” ์ง€์—ญ๋ณ„๋กœ ๋‚จ๋…€ ์ธ๊ตฌ์ˆ˜ ๋น„์œจ๊ณผ ์„ธ๋Œ€๋‹น ์ธ๊ตฌ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์‹œ๊ฐํ™”ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ ์ง€์—ญ์˜ ์„ฑ๋ณ„ ์ธ๊ตฌ ๋ถ„ํฌ์™€ ์„ธ๋Œ€๋‹น ํ‰๊ท  ์ธ๊ตฌ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ชฉ์ฐจ ์ž…๋ ฅ๋œ ์ง€์—ญ์˜ ์—ฐ๋ น๋ณ„ ์ธ๊ตฌ ๋ถ„ํฌ ์‹œ๊ฐํ™”import csvimport matplotlib.pyplot as pltf = open('age.csv', 'r', encoding = 'cp949')data = csv.reader(f, delimiter=',')header = next(data)result =[]dongname = input('์ฐพ๊ณ  ์‹ถ์€ ์ง€์—ญ์˜ ์ด๋ฆ„์„ ์•Œ๋ ค์ฃผ์„ธ์š”. ')for row in data: if dongname in row[0]: for i i..

Python 2024.05.12

[python] ๊ตฌ๊ธ€ ์ฝ”๋žฉ์„ ํ™œ์šฉํ•œ ์šฐ๋ฆฌ๋™๋„ค ์ธ๊ตฌ ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ ๋ถ„์„ - Matplotlib ํ™œ์šฉ

๋ชฉ์ฐจ ์šฐ๋ฆฌ ๋™๋„ค ์ธ๊ตฌ ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ ๋ถ„์„์ธ๊ตฌ ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ ๋‹ค์šด๋กœ๋“œ๊ฒ€์ƒ‰ "์ฃผ๋ฏผ๋“ฑ๋ก ์ธ๊ตฌํ†ต๊ณ„ ๋ฐ์ดํ„ฐ" https://jumin.mois.go.kr/  ํ–‰์ •์•ˆ์ „๋ถ€์—์„œ ์ฃผ๋ฏผ๋“ฑ๋ก ์ธ๊ตฌํ†ต๊ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ์ด ์ธ๊ตฌ์ˆ˜๋ฅผ ํ•œ๋ˆˆ์— ๋ณผ์ˆ˜ ์žˆ๋„๋ก ๋‚ด๊ฐ€ ๋ณด๊ณ  ์‹ถ์€ ๋‚ด์šฉ์„ ์—ฐ๋„๋ณ„ ์›”๋ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ์ˆ˜ ์žˆ๋‹ค. ํŠน์ • ๋ฐ์ดํ„ฐ๋Š” csv ๋˜๋Š” excelํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์œผ๋ฉด ๋œ๋‹ค. 2024๋…„ ๊ธฐ์ค€์œผ๋กœ ์ „๊ตญ ๋™๋ณ„ ์ธ๊ตฌํ˜„ํ™ฉ์ด ๋‚˜์˜จ๋‹ค.  ์ธ๊ตฌํ†ต๊ณ„ ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•œ ์ค€๋น„๊ณผ์ •๊ตฌ๊ธ€ ์ฝ”๋žฉ์‚ฌ์šฉ๊ตฌ๊ธ€ ์ฝ”๋žฉ์—์„œ ์ƒˆ ๋…ธํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค.ํŒŒ์ผ ์ด๋ฆ„์€ "์ธ๊ตฌํ†ต๊ณ„.ipynb"๋กœ ์„ค์ •๋ฐ์ดํ„ฐ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์ •์ตœ์ƒ์œ„ ๋ฃจํŠธ์—์„œ content ํด๋”๋ฅผ ์ฐพ๋Š”๋‹ค.๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ "age.csv"ํŒŒ์ผ์„ ํ•ด๋‹น ๊ฒฝ๋กœ ๋„ฃ๋Š”๋‹ค.๊ฐ€์„ค ์„ค์ •๊ณผ ๊ฒ€์ฆ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ฐ€์„ค์„ ์„ค์ •ํ•œ..

Python 2024.05.12

[python] ์ฃผ์‚ฌ์œ„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ํ†ตํ•œ ํžˆ์Šคํ† ๊ทธ๋žจ ๊ทธ๋ฆฌ๊ธฐ - Matplotlib ํ™œ์šฉ

Matplotlib์„ ์‚ฌ์šฉํ•˜์—ฌ ํžˆ์Šคํ† ๊ทธ๋žจ ๊ทธ๋ฆฌ๊ธฐ ํžˆ์Šคํ† ๊ทธ๋žจ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๊ฐ„(๋˜๋Š” ๋ฒ”์ฃผ)์œผ๋กœ ๋‚˜๋ˆ„๊ณ , ๊ฐ ๊ตฌ๊ฐ„์— ์†ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๋นˆ๋„์ˆ˜๋ฅผ ๋ง‰๋Œ€๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค.์ด๋ ‡๊ฒŒ ๊ตฌ๊ฐ„๋ณ„ ๋นˆ๋„์ˆ˜๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๋‚˜ํƒ€๋‚ด์–ด ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค. import matplotlib.pyplot as pltplt.hist([1,2,3,4,5,6,7,8,9])plt.show() `plt.hist()` : ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ๋ฅผ ํžˆ์Šคํ† ๊ทธ๋žจ์œผ๋กœ ๊ทธ๋ฆฐ๋‹ค.   ์ฃผ์‚ฌ์œ„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํŒŒ์ด์ฌ์˜ matplotlip ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์‚ฌ์œ„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒฐ๊ณผ๋ฅผ ํžˆ์Šคํ† ๊ทธ๋žจ์œผ๋กœ ์‹œ๊ฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.์ฃผ์‚ฌ์œ„๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ๊ตด๋ ค์„œ ๋‚˜์˜ค๋Š” ์ˆซ์ž๋ฅผ ๊ธฐ๋กํ•œ๋‹ค.์ด๋ฅผ ํ†ตํ•ด ๋‚˜์˜ค๋Š” ๊ฐ ์ˆซ์ž์˜ ๋นˆ๋„๋ฅผ ํ™•์ผํ• ์ˆ˜ ์žˆ๋‹ค.   ์ฝ”๋“œ ์ž‘์„ฑimport matplotli..

Python 2024.05.12

[python] ํŒ๋‹ค์Šค๋ฅผ ํ™œ์šฉํ•œ ์›นํฌ๋กค๋ง๊ณผ ๋ฐ์ดํ„ฐ ๋ถ„์„ - Excel ํŒŒ์ผ๋กœ ์ •๋ณด ์ €์žฅํ•˜๊ธฐ

๋ชฉ์ฐจ ๊ฐ€๋น„์•„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฉ”์ธํ™”๋ฉด ํฌ๋กค๋งํ•˜๊ธฐimport requestsfrom bs4 import BeautifulSoup as bsimport regabiapage = requests.get("https://library.gabia.com/")soup = bs(gabiapage.text, "html.parser")elements = soup.select('div.esg-entry-content a > span')#print(elements)for index, element in enumerate(elements, 1): print('{}๋ฒˆ์งธ ๊ฒŒ์‹œ๊ธ€์˜ ์ œ๋ชฉ : {}'.format(index, element.text)) BeautifulSoup ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ importํ• ๋•Œ, bs ๋ณ„์นญ์œผ๋กœ ์ค„์—ฌ์„œ ๊ฐ„๊ฒฐํ•˜..

Python 2024.05.05