๐Ÿ—๏ธ์†Œํ”„ํŠธ์›จ์–ด/๐Ÿ’ปpython

    [Python] TypeError: 'NoneType' object is not iterable ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

    'TypeError: 'NoneType' object is not iterable'์—๋Ÿฌ๊ฐ€ ํŒŒ์ด์ฌ์—์„œ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด, ๋ฐ˜๋ณต๋ฌธ์— ์‚ฌ์šฉํ•  ๊ฐ์ฒด๋ฅผ ์–ป์–ด์˜ค๋Š” ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ๋‹ค. ๋‘ ๊ฐ€์ง€๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ํฌ๋กค๋ง์„ ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ์ ๋‹นํ•œ ์‹œ๊ฐ„์„ ์ฃผ๋Š” ๊ฒƒ(time.sleep() ์„ ํ†ตํ•ด ํ˜„์žฌ ํŽ˜์ด์ง€์—์„œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๋Œ€๋กœ ์ž˜ ๊ฐ€์ ธ์˜ค๋Š” ์ž‘์—…์„ ์™„๋ฃŒํ•˜๋Š” ๊ฒƒ) ๊ณผ ๋งˆ์ง€๋ง‰์œผ๋กœ try except ๋ฌธ์„ ํ†ตํ•ด ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ๋•Œ, ๊ตฌํ•˜์ง€ ๋ชปํ•ด๋„ ์—๋Ÿฌ๊ฐ€ ๋‚˜์ง€ ์•Š๊ฒŒํ•ด์•ผํ•œ๋‹ค. ๋

    [python] ํŒŒ์ด์„  pd.concat

    [python] ํŒŒ์ด์„  pd.concat

    ํŒŒ์ด์„  ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ ํฌ๋กค๋งํ•˜๋ฉด์„œ, ์œ ์šฉํ•˜๊ณ  ํ•„์š”ํ–ˆ๋˜ ํ•จ์ˆ˜๋ฅผ ์ด์•ผ๊ธฐํ•˜๋ฉด, ํŒ๋‹ค์Šค ๋ชจ๋“ˆ์—์„œ๋Š” ํŠนํžˆ๋‚˜ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ๋งŒ๋“ค๊ณ , ์ €์žฅํ•˜๊ณ , ํ•ฉ์น˜๊ณ ๋Š” ๊ฒƒ์„ ๋งŽ์ด ํ•˜์˜€๋Š”๋ฐ, ๋ฌด์—‡๋ณด๋‹ค ํ•ฉ์น˜๋Š” ์ž‘์—…์ด ๋งŽ์•˜๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ฐ ํŽ˜์ด์ง€๋งˆ๋‹ค ํŒŒ์‹ฑํ•œ ๋ฐ์ดํ„ฐ๋“ค์„ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์œผ๋กœ ๋งŒ๋“ค์–ด๋‘๊ณ , ๊ทธ๋•Œ๊ทธ๋–„๋งˆ๋‹ค ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ํ˜•์„ฑํ•˜์—ฌ, ๊ธฐ์กด์˜ ํ‹€์— ๊ณ„์†ํ•ด์„œ ํ•ฉ์น˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•˜์˜€๊ธฐ ๋–„๋ฌธ์ด๋‹ค. ๊ธฐ์กด์˜ ๋ฆฌ์ŠคํŠธ์—๋‹ค๊ฐ€ ๊พธ์ค€ํžˆ append๋ฅผ ํ†ตํ•ด ๋„ฃ์–ด์„œ ํ•œ๋ฒˆ์— ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด, ๋‹จ์ ์€ ๋งŒ์•ฝ์— ์ค‘๊ฐ„์— ์ž‘์—…์ด ๋ฉˆ์ถ”๊ฑฐ๋‚˜ ํ•˜๋ฉด, ํ•ด๋‹น ๋ฆฌ์ŠคํŠธ์— ๊ฐ’์€ ์ €์žฅ๋˜์–ด ์žˆ์ง€๋งŒ, ์–ผ๋งˆ๋‚˜ ์ €์žฅ๋˜์–ด ์žˆ๋Š”์ง€, ๊ธธ์ด๋Š” ๋งž๋Š”์ง€์— ๋Œ€ํ•œ ํ™•์ธ์ž‘์—…์ด ์–ด๋ ต๊ณ , ์‚ฌ์‹ค์ƒ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์—ฌ์•ผํ• ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํŒ๋‹ค์Šค pandas ์˜ pd.concat() ๋ฅผ ๋งŽ์ด..

    [python] ํฌ๋กค๋ง implicit wait vs time.sleep

    ํฌ๋กค๋ง ํ•˜๋‹ค๋ณด๋ฉด, ์ž ์‹œ ์ฝ”๋“œ ์‹คํ–‰์„ ๋ฉˆ์ถฐ์•ผ ํ•  ํ•„์š”๊ฐ€ ์ƒ๊ธด๋‹ค. ์ฃผ๋œ ์š”์ธ์€ 2๊ฐ€์ง€๊ฐ€ ์žˆ์„ ๊ฒƒ ๊ฐ™์€๋ฐ, ์ฒซ๋ฒˆ์จฐ, ์ฝ”๋“œ์˜ ์‹คํ–‰์†๋„๊ฐ€ ๋„ˆ๋ฌด ๋นจ๋ผ, ์›น ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก์ด ๋Š๋ ค์„œ, ์‹ค์ œ ์‚ฌ์ดํŠธ๊ฐ€ ์—ด๋ฆฌ์ง€๋„ ์•Š์•˜๋Š”๋ฐ ์ฝ”๋“œ๊ฐ€ ๋จผ์ € ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์”นํžˆ๊ฒŒ ๋œ๋‹ค. ๋‘๋ฒˆ์งธ, ๋ฐ˜๋ณต์ ์ธ ํฌ๋กค๋ง ์ž‘์—…์€ ์„œ๋ฒ„์— ๋งŽ์€ ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์„ ์œ ๋ฐœํ•˜๋Š” ํฐ ์š”์ธ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ, ์ž์นซํ•˜๋ฉด ์šฐ๋ฆฌ์˜ ip๊ฐ€ ์ž ๊น ์ •์ง€ ๋‹นํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ํฌ๋กค๋ง ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€ ๊ฐ‘์ž๊ธฐ ip๊ฐ€ ๋ง‰ํ˜€๋ฒ„๋ฆฌ๋ฉด, ์ด๋ณด๋‹ค ์‹ฌํ•œ ๊ฒฝ์šฐ๋Š” ์—†์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ ์ ˆํ•œ ์‰ฌ์–ด๊ฐ์˜ ๋ฏธํ•™์ด ํ•„์š”ํ•œ ๊ฒƒ์ด๋‹ค. ๋ณธ๊ฒฉ์ ์œผ๋กœ time.sleep ๋ฌธ๊ณผ implicit wait ๋ฌธ์„ ๋น„๊ตํ•˜๋ฉด, ํ™•์‹คํžˆ time.sleep ๋ณด๋‹ค implicit wait ์ด ์ข‹์€ ๊ฒƒ ๊ฐ™..

    [python] ํฌ๋กค๋ง์— ํ•„์š”ํ•œ ํ•จ์ˆ˜ : filter, lambda, map

    [python] ํฌ๋กค๋ง์— ํ•„์š”ํ•œ ํ•จ์ˆ˜ : filter, lambda, map

    ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ๋งŒ๋“ค๊ฒฝ์šฐ, ํ–‰์˜ ์ˆ˜๊ฐ€ ์„œ๋กœ ๋งž์•„์•ผ ์›ํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, ์€๊ทผํžˆ ํŒŒ์‹ฑํ•˜๋‹ค๋ณด๋ฉด, ๊ณต๋ฐฑ์ด ์žˆ์–ด์„œ, ๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๊ฐ€ ๋‚ด๊ฐ€ ์˜ˆ์ƒํ•œ ์ˆซ์ž์ธ 30์ด ์•„๋‹Œ 60์ด ๊ณ„์† ๋‚˜์™”๋Š”๋ฐ, ์ด๋Ÿด๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ filter ๋ผ๋Š” ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ๊ธฐ๋ณธ ๋‚ด์žฅ ํ•จ์ˆ˜์—ฌ์„œ ๋ฐ”๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋Š” ํฐ ์žฅ์ ์ด ์žˆ๋‹ค. ์ฐธ๊ณ ๋กœ lambda ์™€ map๋„ ๋ฐ”๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค filter ['', '๊ธฐ์•„ K5 3์„ธ๋Œ€ 2.0 LPI ๋ Œํ„ฐ์นด ์Šคํƒ ๋‹ค๋“œ', '', 'ํ˜„๋Œ€ ๋” ๋‰ด ๊ทธ๋žœ์ € 3.0 LPi ๋ Œํ„ฐ์นด ํ”„๋ฆฌ๋ฏธ์—„', '', '๊ธฐ์•„ K5 3์„ธ๋Œ€ 1.6 ๊ฐ€์†”๋ฆฐ ์‹œ๊ทธ๋‹ˆ์ฒ˜', '', '๊ธฐ์•„ The SUV ์Šคํฌํ‹ฐ์ง€ 2.0 ๊ฐ€์†”๋ฆฐ 2WD ๋…ธ๋ธ”๋ ˆ์Šค', '', '๊ธฐ์•„ K5 3์„ธ๋Œ€ 2.0 LPI ๋ Œํ„ฐ์นด ์Šคํƒ ๋‹ค๋“œ', '', '..

    python ์ฝ”๋“œ ์‹œ๊ฐ„ ๊ณ„์‚ฐ

    python ์ฝ”๋“œ ์‹œ๊ฐ„ ๊ณ„์‚ฐ

    ์‹œ๊ฐ„์ธก์ • ์ด์˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ• import math import time import datetime start = time.time() math.factorial(12345678910) end = time.time() sec = (end - start) result = datetime.timedelta(seconds=sec) print(result) result_list = str(datetime.timedelta(seconds=sec)).split(".") print(result_list[0])

    Kernel died with exit code 1073741845 ์—๋Ÿฌ

    Kernel died with exit code 1073741845 ์—๋Ÿฌ

    ์ฃผ๋กœ VSCODE๋ฅผ ํ™œ์šฉํ•œ๋‹ค ์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ ์ธํ„ฐํŽ˜์ด์Šค๋ณด๋‹ค๋Š” jupyter notebook extention์„ ํ™œ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ํ•˜๋Š”๊ฒŒ ์ต์ˆ™ํ•˜๋‹ค. ํ•˜์ง€๋งŒ ์ž˜ ์“ฐ๋‹ค๊ฐ€, ๋…ธํŠธ๋ถ์—์„œ ์“ฐ๋Š”๊ฑธ ๋ฐ์Šคํฌํƒ‘ ํฐ ํ™”๋ฉด์—์„œ ๋ณด๊ณ  ์‹ถ์–ด์„œ, ๋ฒ„์ „์„ ๋™์ผ์‹œ ํ•˜๋ ค๊ณ  ์•„๋‚˜์ฝ˜๋‹ค ํ”„๋กฌํ”„ํŠธ์ฐฝ์—์„œ python 3.8.8 ๋ฒ„์ „์„ ๋‹ค์šด๋ฐ›๊ณ , vscode๋ฅผ ์‹คํ–‰ํ•˜๋‹ˆ๊น ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. 1์ฐจ ๋ฉ˜๋ถ„. "Kernel died with exit code 1073741845" ์—๋Ÿฌ๊ฐ€ ๋œจ๋ฉด์„œ ์ปค๋„์ด ์•ˆ ์—ด๋ฆฌ๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ์ค‘๊ฐ„์— kernel exit ์—๋Ÿฌ๋„ ๋–ณ๋‹ค. ์•„๋ฌด๋ฆฌ ์ € ํ‚ค์›Œ๋“œ๋กœ ์ฐพ์•„๋ณด๊ณ  ์žฌ์„ค์น˜๋ฅผ ํ•ด๋ด๋„ ๊ณ ์น  ์ˆ˜๊ฐ€ ์—†์—ˆ๋‹ค . ๊ทธ๋Ÿฐ๋ฐ ์—๋Ÿฌ์ฝ”๋“œ๊ฐ€ ๋‹ฌ๋ผ์ ธ์„œ ๋‹ฌ๋ผ์ง„ ์ฝ”๋“œ๋กœ ๊ฒ€์ƒ‰ํ•ด๋ณด๊ณ  ์ •๋‹ต์„ ์ฐพ์•˜๋‹ค. jupyter lab๊ณผ์˜ ์ถฉ๋Œ ๋•Œ๋ฌธ์ด์—ˆ๋‹ค! ๊ทธ๋ž˜์„œ ๋‹ค์Œ๊ณผ..

    selenium.webdriver.common.keys

    Selenium library: ์›น ํฌ๋กค๋ง ํ•„์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ Keys ๋ชจ๋“ˆ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ํ‚ค๋ณด๋“œ์˜ ํ‚ค๋ฅผ ์ปดํ“จํ„ฐ์— ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•จ send_keys( ์ž…๋ ฅํ•  ํ‚ค) from selenium.webdriver.common.keys import Keys ์ž…๋ ฅํ•  ํ‚ค ๋ชฉ๋ก:์ž…๋ ฅํ•  ํ‚ค Kyes.ENTER, Keys.ARROW_DOWN, Keys.ARROW_LEFT, Keys.ARROW_RIGHT, Keys.ARROW_UP, Keys.BACK_SPACE, Keys.CONTROL, Keys.ALT, Keys.DELETE, Keys.TAB, Keys.SPACE, Keys.SHIFT, Keys.EQUALS, Keys.ESCAPE, Keys.HOME, Keys.INSERT, Keys.PAGE_UP, Keys.PAGE_..

    [python] crawling customizing

    [python] crawling customizing

    ํŒŒ์ด์„  ํฌ๋กค๋ง ์ „๋ฐ˜์ ์ธ ์ฝ”๋“œ / ํŠน์ง• ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋ณด์ง€ ์•Š๊ณ  ํฌ๋กค๋งํ•˜๋Š” ๋ฐฉ์‹ 2๋ฒˆ์จฐ ํƒญ์œผ๋กœ ์ƒˆ์ฐฝ์œผ๋กœ ์ƒ์„ฑ ๋ธ”๋žญํฌ ์Šคํฌ๋ž˜ํ•‘์„ ์ „๋ฌธ์œผ๋กœ ํ•˜๋Š” ๋ชจ๋“ˆ ์ƒ์„ฑ ํ•˜๋‚˜๋Š” ๋นˆ์ฐฝ์ด๊ณ , ํ•˜๋‚˜๋Š” ํƒ€๊ฒŸ์ฐฝ URL๋กœ ์Šคํฌ๋ž˜ํ•‘ํ• ๋•Œ ๊ด„ํ˜ธ๊ฐ€ ์žˆ์œผ๋ฉด ์ผ๋ถ€๋ถ„๋งŒ ์งค๋ผ์„œ / ํŠน์ • ์ˆซ์ž*์ „์ฒด์ˆ˜๋งŒ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒฝ์šฐ XPATH F TYPE ์œผ๋กœ ํ•ด๋‹น URL๋ฐ˜๋ณต ๋„ค์ด๋ฒ„ ๋กœ๊ทธ์ธ ๋ฐฉ๋ฒ• 2๊ฐ€์ง€ ๋น„๊ต 1. send keys() ๋กœ ๊ฐ€๋Š” ๋ฐฉ๋ฒ• driver.implicitly_wait(3) driver.get('https://nid.naver.com/nidlogin.login') # ์•„์ด๋””/๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด์ค€๋‹ค. driver.find_element_by_name('id').send_keys('naver_id') driver.find_element_by_name(..

    [git/  source tree] ํ—ˆ์ ‘ํ•œ ์‚ฌ์šฉ๋ฒ•

    [git/ source tree] ํ—ˆ์ ‘ํ•œ ์‚ฌ์šฉ๋ฒ•

    1. source tree https://ux.stories.pe.kr/181 Git GUI ์†Œ์ŠคํŠธ๋ฆฌ(SourceTree) ์„ค์น˜๋ฐฉ๋ฒ•๊ณผ ์‚ฌ์šฉ๋ฐฉ๋ฒ• ๋ฉ‹์ฐ ๊ฐœ๋ฐœ์ž ๊ฐ™์€ ๊ฒฝ์šฐ ๊ฒ€์ • ํ™”๋ฉด์— ํ•˜์–€์ƒ‰ ๊ธ€์”จ๋กœ ํƒ€์ดํ•‘์„ ์น˜๋ฉฐ Git ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰์‹œํ‚ฌํ…๋ฐ์š”. ๊ทธ๊ฒŒ ๋ฉ‹์ง€๊ธด ํ•˜์ง€๋งŒ ํŽธํ•œ ํ˜•ํƒœ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. Git์„ ์ข€๋” ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Git GUI(Graphic User ux.stories.pe.kr ์„ค์น˜ ์žฅ์†Œ : https://www.sourcetreeapp.com/ Sourcetree | Free Git GUI for Mac and Windows A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git cl..

    vscode ๋žจ ์‚ฌ์šฉ

    vscode ๋žจ ์‚ฌ์šฉ

    ํŒŒ์ด์„ ์œผ๋กœ tensorflow, keras ๋ฅผ ์ด์šฉํ•ด์„œ ์‹ค์Šต์„ ํ•˜๋˜์ค‘์—, ์‚ฐ๊ฒฝ๋ง ํ•™์Šต์—์„œ ๋‹ค์ธต ํผ์…‰ํŠธ๋ก ์œผ๋กœ epoch 1000๋ฒˆ์œผ๋กœ ๋Œ๋ฆฌ๋‹ค๊ฐ€ 10๋ฐฐ์ธ 10000๋ฒˆ์œผ๋กœ ์ˆ˜์ •ํ•˜์˜€๋”๋‹ˆ, vscode ๊ฐ‘์ž๊ธฐ ๋ฉˆ์ถ”๋”๋‹ˆ, ๋žจ ์‚ฌ์šฉ๋Ÿ‰์ด ์ตœ๋Œ€๊ฐ€ ๋˜์–ด ๊ฐ•์ œ ์ข…๋ฃŒ๋˜์—ˆ๋‹ค. gpu ์„ค์ •์œผ๋กœ ํ•˜์—ฌ ๋”ฅ๋Ÿฌ๋‹์„ ์ง„ํ–‰ํ•˜์˜€๋Š”๋ฐ, ๋žจ 20๊ธฐ๊ฐ€๋„ ๊ดœ์ฐฎ์„์ค„ ์•Œ์•˜๋Š”๋ฐ ์•„๋‹ˆ์—ˆ๋‹ค.. ๋ฉ”๋ชจ๋ฆฌ๋ž‘ ๋ฆฌ์†Œ์Šค๋Š” ๋‹ค ๋บด์•—๊ธด๋“ฏ.. ์—ฌ๊ธฐ์„œ ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋ฅผ ์ข€ ์ข‹์€๊ฑธ ์“ฐ๊ณ , loss ํ•จ์ˆ˜๋ฅผ ๋น ๋ฅธ๊ฑธ ํƒํ•˜๋ฉด ์ข€ ๊ดœ์ฐฎ์„ ๊ฒƒ ๊ฐ™๋‹ค