본문 바로가기

Data handling

(31)
[오픈 Api 이용하기] 금융위원회_기업기본정보 python, 공공 데이터 https://data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15043184 금융위원회_기업기본정보 데이터를 이용하고자 했다. 쉽게 될 줄 알았는데 뭔가 막혀서 삽질을 많이했다. 기록은 남겨둘까 한다. from urllib.request import urlopen from urllib.parse import urlencode, unquote, quote_plus import urllib import json from pprint import pprint url = 'http://apis.data.go.kr/1160100/service/GetCorpBasicInfoService/getCorpOutline' decode_key = un..
[pandas] str으로 나타내진 datetime 을 mean 연산 가능한 형식으로 변환하기 from dateutil.parser import parse tuple(map(lambda x: int(x), tuple("2015.05.23".split("-")))) 위 코드가 정상 작동한다. 하고 싶은건 “2015.05.23” 이런 str 데이터를 df[“date”].mean()했을 때 딱 평균 시간이 나오게 하는 것이다. new_df["dates"] = new_df["dates"].map( lambda date: pd.datetime(*tuple(map(lambda x: int(x), date.split(".")))) )위 코드를 짜며 배운점 *args 문법을 써준다. tuple이 들어가서 자동으로 pd.datetime()에 맞는 인자로 들어간다. pd.datetime은 pd.datetime(20..
[크롤링] beautiful soup에 관하여, 내가 bs를 쓰지 않는 이유 parsing을 ‘html.parser’, ‘lxml’, ‘html5lib’ 중 어떤 걸로 하느냐에 따라 좀 달라진다고 한다. 그렇지만 특정 사이트들에 원하는 항목은 아예 html 내에 없을 수도 있었다. 아무리 봐도 request를 통해 얻은 response의 text엔 내가 원하는 정보가 없었다. 얼마나 삽질을 했을까… 문법적 오류가 있는 줄 알고 계속 beautiful soup 문법을 살펴보며 이래 저래 방법을 찾으려 햇다. 그런데 다시보니 원하는 테그가 아예 크롤링 된 결과에 없어서 안되는 것이었다. selenium으로 갈아타자… 좀 느리긴 하지만. 그래도… scrapy를 공부하면 훨훨 날듯이 쓸 수 있을 것 같은데. 정리하면 beautiful soup는 안 통하는 사이트가 많은 것 같다. sel..
[크롤링 삽질] selenium 스크롤 다운 안될때 꿀팁 네이버 크롤링이 카카오, 구글 크롤링보다 훨씬 어렵다... 내가 크롤링한 사이트는 네이버 플레이스이다. 스크롤 다운을 위해 여러 시도를 해보다가 알게 됐다. 핵심적인 사실 1. body를 클릭해야 스크롤 다운이 가능하다 2. body를 클릭했을때, 다른 링크로 넘어갈 경우도 있고 안 넘어갈 경우도 있다. 이에 대한 예외사항을 처리해 주어야 한다. 3. 굳이 스크롤 다운을 하지 않아도 바로 볼 수 있는 메뉴가 있다면 그걸 이용한다 4. x_path가 만능이 아니다. 오히려 driver.find_element_by_class_name이 더 유용할 때가 있다. class_name이 고정돼 있을 경우 좀 더 안정적으로 크롤링 할 수 있다는 경험이 생겼다. 2번에 대한 예외사항을 처리한 스크롤 다운 기능을 구현했..
[크롤링 관련] selenium stale 에러 selenium stale 에러 stale element reference: element is not attached to the page document 위와 같은 에러가 발생했다. 찾아봐도 잘 몰랐다. 유심히 살펴 해석해보면 그 요소가 html? 문서에 없는데 그걸 긁으려 한다고 에러를 보내는 것이다. 즉, selenium으로 웹페이지가 너무 빨리 넘아가서 그렇다! 이게 driver.implicit_wait(1) 이런 식으로 대기시간을 주면 되는 줄 알았다. 그래서 다른 문제인지 알고 한참 찾았는데… 저 함수가 안 통했던 것이다!!! 왜 안되는걸까...? 답은 time.sleep을 주면 된다. 그러면 stale error가 더 이상 안난다. stale error 때문에 크롤링 결과가 되게 엉성했다…..
[mac os & pycharm] 단축키 정리 파라미터 보기 (괄호 열고 입력) command + P 코드 구현부 즉시 보기 (괄호 열기전 함수 이름위에 입력) option + space 페이지 업 다운 fn + 위/아래 라인 첫,끝 이동 fn + 좌/우 단어별 이동 option + 좌/우 오류라인 자동 포커스 f2 코드 자동 정렬 command + option + L 디버깅 모드 control + shift + D 이전에 실행한 경우 : control + D 다음 브레이크 포인트로 이동 : command + option + R
스케일링/표준화/정규화 차이 I'm told that I need to normalize features before modeling with KNN. What's the difference between scaling to 0 and 1, taking a unit norm, or z score? I've been taught all of these to "normalize" data, but don't know how or why each apply. Answer:RESCALING attribute data to values to scale the range in [0, 1] or [-1, 1] is useful for the optimization algorithms, such as gradient descent, that ar..

728x90