본문 바로가기

Project19

[CBB 공모전] 카카오맵 API 활용, 위경도 좌표를 주소로 변환 230525 목 💡 영등포구 위경도 좌표를 활용하여 주소 변환 영등포구의 흡연시설은 위도, 경도는 존재하지만 주소컬럼은 존재하지 않는다. 위경도→주소 변환 하고 싶을 때 사용한 코드(역지오코딩) 참고한 블로그 : https://parkgihyeon.github.io/ 카카오맵API를 검색하면, https://apis.map.kakao.com/web/guide/ 해당 사이트가 나오고, 이 사이트는 자바스크립트 API이므로 파이썬 코드를 사용하는 나로서는 이해하기가 쉽지 않다. 파이썬 코드들은 아래 주소의 로컬 > REST API 페이지를 보는게 이해에 도움이 된다. 카카오 developers의 로컬 > REST API 를 사용해서, 주소 검색, 좌표로 주소 변환, 좌표계 변환 등을 할 수 있다.(스크린샷의.. 2023. 6. 7.
[CBB 공모전] 전처리 시 예외 케이스, 데이터셋별 다른 기간에 대한 고민 230524 수 1. 중복 데이터, 또는 제거해야 할 데이터가 삭제가 안됨 drop() 할 때, inplace=True를 해야지 원본에 반영됨 2. 주소의 근사값으로 변경 위경도 매칭 시 오류가 발생하는 주소들이 존재한다. 그러한 주소들은 위치를 확인 후, 근사값으로 변경 ex) [마포구] 석양집의 주소는 ‘토정로 317’, 설치 세부 위치인 띠녹지 앞은 ‘토정로 35길 12’이지만, 해당 주소로는 위경도가 나오지 않아 석양집의 주소로 변경 ex) [영등포구] 로데오거리 → 로데오가 위치한 '문래동3가'로 ex) [영등포구] 49길 3-3 → 49길 2 3. 그럼에도 불구하고, 근사값으로 변경하기 애매한 경우가 발생 폐업 : 데이터 제거 아파트 단지로 변경 : 데이터 제거 메디컬 센터 이름으로만 되어 있.. 2023. 6. 7.
[CBB 공모전] ParserError 230524 수 ParserError 발생 원인 파악 파일을 불러올 때부터 encoding 등을 설정해줘도 ParserError가 발생한다. 해당 문제 발생 이유에 대해 참고한 블로그 : https://pylife.tistory.com/entry/PythonPandas-ParserError-Error-tokenizing-data 블로그의 방법을 참고하여, csv 모듈을 사용해 데이터를 불러와보면, 6번 인덱스처럼 주소의 컬럼이 구분자로 잘못 인식이 되어 컬럼에 들어갈 내용이 밀린 것을 볼 수 있다. file_path = 'data\쓰레기통\서울특별시 마포구 용강동 상점가 담배꽁초수거함 설치 현황_20220805.csv' f = open(file_path, 'rt') reader = csv.reader(f.. 2023. 6. 7.
[CBB 공모전](트러블슈팅) 카카오맵 API 활용, 데이터셋 주소와 위경도 매치 230523 화 💡 목표 구별 담배꽁초 쓰레기통 데이터셋에 존재하는 주소에 위경도를 매치하여, 지도 시각화 구글 API 보다 카카오 API의 위경도가 더 정확하게 나온다는 팀원의 정보에 카카오맵 API 활용 예정 ❗ 어려움 1 - 강남구 쓰레기통 설치 주소 형태 ex) 압구정로 14길 6(신사동 548-4) 도로명 주소 or 지번 주소 하나만 필요하지만, 설치주소 컬럼에 도로명주소(지번주소), 도로명주소가 혼재되어 있음 괄호('(')를 기준으로 split 후 0번째 값을 가져오도록 apply와 lambda 활용 주소 내 '앞'과 '맞은편'이 포함 공백(' ')을 기준으로 split 반복문 내 [-1] 인덱스 값이 '맞은편' 또는 '앞'이라면 [:-1]까지만 가져오도록 함. 주소 내 시와 구가 포함되어 있.. 2023. 5. 24.
[마켓센싱] 셀레니움으로 다른 경쟁사 홈페이지 스크래핑(더보기 클릭, 새 탭으로 열기, id값 변화 오류들) 230515, 230516 해당 홈페이지는 페이지 번호로 이동하는 이전 홈페이지와 다르게, 더보기(see more)를 클릭하면 추가로 15개씩 기사가 출력되는 형식의 홈페이지이다. 💡 스크래핑 방향 설정 - 필요한 날짜까지 한 번에 더보기를 클릭해서 기사목록을 펼쳐둔다 > 기사를 클릭해 들어간다 > 본문 스크래핑 > 원래 페이지로 돌아옴 - is_displayed()를 활용해 코드 작성 완료 # 더보기 버튼 클릭하는 요소 more_botton = driver.find_element(By.CSS_SELECTOR, '#newsloadmore') for i in range(1, 5): # 4번 더보기 클릭하도록 설정 time.sleep(3) if more_botton.is_displayed(): more_bo.. 2023. 5. 17.
[마켓센싱] '뉴스 클릭 > 본문 스크래핑' 반복 시, 에러 잡기 230513 페이지 내 뉴스 기사(20개) 클릭 > 스크래핑 시 for문 에러 1. for z in range(5, 25) 뉴스 기사를 클릭하는 CSS_SELECTOR 경로는 'body > div.container > div:nth-child(5) > div > div.news-item-content > h3 > a' nth-child(5) 부터 20개의 기사를 클릭해야 함. for z in range(5, 25) 를 했어야 하는데, (5,26)으로 설정해서 에러가 나고 다음 페이지 클릭이 안되었던 것 2. f'body > div.container > div:nth-child({z}) > div > div.news-item-content > h3 > a' {z}라는 변수를 반복해서 변경할 것이기 때문에 .. 2023. 5. 15.
[마켓센싱] 스크래핑 오류 230511 선택한 페이지 내 기사를 클릭하고 스크래핑하는 반복문에서 뜬 에러 : InvalidSelectorException 에러 선택한 페이지(1페이지) 내 기사의 개수는 20개 반복하고 싶은 것 : 20개의 기사를 클릭해서 들어감 > 스크래핑 기사를 클릭하기 위한 변수 : click_element3 driver.find_element() 말고 WebDriverWait와 EC.presence_of_element_located()를 사용해봄 : 페이지가 로드가 안되었는데 클릭을 하려고 해서 오류가 나는 경우인가 싶어서 해당 CSS_SELECTOR 경로는 f'body > div.container > div:nth-child({z}) > div > div.news-item-content > h3 > a' .. 2023. 5. 12.
221120 미니프로젝트4(데이콘 버스 운행시간 예측) TIL 미니 프로젝트를 진행하며 어려웠던 점 아직 X, y, train, test 개념이 확립되지 않았는지, 학습을 시키고 예측을 할 때, value error가 뜨는 등의 변수가 발생하면 어느 부분을 고쳐야 할 지 찾기가 어려웠다. 마침 내일 머신러닝 복습을 할 수 있어서, 공부해보고 다시 수정하고 싶다. 사용할 컬럼을 구분하는 것이 어려웠다. 또 object 타입인 컬럼을 사용하고 싶다면, 어떻게 데이터타입을 바꿔야 할지 고민하게 되었다. 파이캐럿을 써서 하이퍼파라미터 조정을 참고해보려고 했는데, 컴퓨터가 돌아가지 않아서 포기하게 되었다,, 인내를 가져야겠다. 시도했지만 성공하지 못한 것 xg부스트로 점수를 내보고 싶었는데, 음의 값이 있어서 에러가 떴다. 아마 그 문제 때문에 xgb_score도 0점이 나.. 2023. 5. 10.
[AI스쿨 7기, 4주차] 미니프로젝트2 EDA 분석 BC카드 사용 제주관광객 소비패턴 분석(2014년 9월~2016년8월) 1. 데이터 선정 실습하면서 배웠던 의약품 중 한 종류를 선정할지, 새로운 데이터를 찾아서 연습해볼지(코시스 데이터셋을 사용할지, 다른 데이터셋을 찾아볼지) 고민을 많이 했다. 연습에 도전해볼만하면서 제주도 관광 특성을 알아볼 수 있을 것 같아 BC카드 사용 데이터를 분석해보기로 결정했다. https://www.data.go.kr/data/15046091/fileData.do 2. 수도코드 작성 제주특별자치도 BC카드 사용 데이터 EDA분석 연습 (2014~2016) 1. 라이브러리 로드, 데이터 파일 불.. 2023. 4. 19.