본문 바로가기

Data_Analysis

(294)
크롤링 - webdriver(selenium)으로 네이버 쇼핑 크롤링하기 크롤링할 콘텐츠 나이키 스우시 드라이핏 캡 548533 : 네이버쇼핑 판매되는 상품의 수량에 대해 2주, 1개월, 3개월, 6개월 단위로 추이를 보여주는 정보입니다. search.shopping.naver.com https://steadiness-193.tistory.com/119 크롤링 : webdriver(selenium)으로 네이버 쇼핑 긁어오기 나이키 스우시 드라이핏 캡 548533 : 네이버쇼핑 판매되는 상품의 수량에 대해 2주, 1개월, 3개월, 6개월 단위로 추이를 보여주는 정보입니다. search.shopping.naver.com 위 네이버 쇼핑의 1페이지 내용을 � steadiness-193.tistory.com 위 포스팅에서 만든 코드를 get_data 함수로 정의한다. https://..
판다스 - 길이가 긴 데이터를 에러 없이 엑셀로 저장하기 : ExcelWriter 데이터프레임 위와 같은 데이터프레임의 컬럼을 보자 컬럼 중 url의 데이터가 너무 길다. 그래서 pd.to_excel을 이용하면 에러메세지가 뜬다. 실제로 Nike 엑셀 파일에 들어가봐도 url 컬럼은 비어 있다. 이럴 때 사용하는 것이 바로 ExcelWriter이다. ExcelWriter pd.ExcelWriter의 옵션 중 strings_to_urls 를 False로 준다. 이러면 아무 에러가 뜨지 않는다. Nike 엑셀 파일에 가서 확인해보면 url이 잘 저장되었다. ** 팁 데이터프레임.to_excel()에서 index=False를 주면 불필요한 인덱스까지 저장하지 않게 된다.
크롤링 - webdriver(selenium)으로 네이버 쇼핑 긁어오기 나이키 스우시 드라이핏 캡 548533 : 네이버쇼핑 판매되는 상품의 수량에 대해 2주, 1개월, 3개월, 6개월 단위로 추이를 보여주는 정보입니다. search.shopping.naver.com 위 네이버 쇼핑의 1페이지 내용을 긁어보자 정확히는 판매처, 상품명, 판매가, 배송비 + 주소를 가져올 것이다. 1. BeautifulSoup으로 page_source 얻기 총 20개의 섹션이 있다. 이 20개를 먼저 찾아내야 한다. 2. 20개 찾기 이상하게도 21개가 나왔다. 맨 처음 것을 보면 맨 상단의 컬럼 같은 것까지 가져왔다. 맨 처음 것을 제외하면 원하던 20개의 섹션을 얻을 수 있다. 3. 판매처 찾기 그냥 글씨로 적혀있는 판매처와 이미지로 되어있는 판매처의 태그는 각각 다르다. 4. 상품명과 판..
크롤링 - webdriver(selenium)으로 네이버 쇼핑 페이지 넘기기 * 안내 크롤링한 코드 파일이 보이지 않아 보내드리기 어렵습니다. 😢 [2020년 7월 12일 기준] 향후 태그명이 달라질 수도 있음. 나이키 모자 네이버 쇼핑 페이지 나이키 스우시 드라이핏 캡 548533 : 네이버쇼핑 판매되는 상품의 수량에 대해 2주, 1개월, 3개월, 6개월 단위로 추이를 보여주는 정보입니다. search.shopping.naver.com 1. 페이지 바 찾기 웹드라이버 이용 (변수명 : browser) 브라우저로 위 url 접속 페이지 바 찾기 위 페이지 바의 태그의 아이디는 _price_list_paging 이다. 이를 page_bar 변수에 넣자 2. 페이지 바의 페이지들 찾기 위에서 찾은 page_bar 이용 이 페이지 바의 'a'태그에는 11개의 객체가 있다. 하나씩 꺼내..
판다스 - 미국의 연도별 인구밀도 변화 https://steadiness-193.tistory.com/116 판다스 - 미국 주/지역별 인구밀도 계산 : merge, 인구밀도 계산 https://steadiness-193.tistory.com/115 미국 주/지역별 인구밀도 계산 : 전처리, merge 총 3개의 데이터프레임이 있다. 1. 주 / 나이 / 연도 / 인구 수를 담은 population 2. 주와 주 이름의 약자를 담은 abbrev.. steadiness-193.tistory.com 위 포스팅의 final 데이터프레임을 이용한다. 위 포스팅에선 USA의 행을 삭제했지만 지금은 USA의 행을 이용할 것이다. 현재 USA의 전체 면적만을 모르고 있는 상태다. USA의 행만 따내와서 usa 변수에 넣어주자 반대로 final 데이터프레임..
판다스 - 미국 주/지역별 인구밀도 계산 : merge, 인구밀도 계산 https://steadiness-193.tistory.com/115 미국 주/지역별 인구밀도 계산 : 전처리, merge 총 3개의 데이터프레임이 있다. 1. 주 / 나이 / 연도 / 인구 수를 담은 population 2. 주와 주 이름의 약자를 담은 abbrevs 3. 주와 그 주의 면적을 담은 areas 모든 데이터가 하나의 데이터프레임에 있지 않 steadiness-193.tistory.com 위 포스팅에서 만들어낸 merged 데이터프레임을 불러오자 이것만으로는 인구밀도를 알아낼 수 없으니 areas 데이터프레임과 연결해야한다. merged와 area의 merge → final merged의 state와 areas의 state로 join하면 된다. 이렇게 원하던 final 데이터프레임이 만들어..
판다스 - 미국 주/지역별 인구밀도 계산 : 전처리, merge 총 3개의 데이터프레임이 있다. 1. 주 / 나이 / 연도 / 인구 수를 담은 population 2. 주와 주 이름의 약자를 담은 abbrevs 3. 주와 그 주의 면적을 담은 areas 모든 데이터가 하나의 데이터프레임에 있지 않고 SQL 처럼 join하기 위해 정규화 되어 있다. 우선 Null이 있는지 보자 population의 population 컬럼에만 20개의 NaN값이 있다. 그리고 각 데이터프레임의 shape을 살펴보면 popluation이 주된 데이터프레임인 것을 확인할 수 있고 나머지 2개는 정보를 담아둔 컬럼이라고 생각할 수 있다. 이제, 목표로 하는 주별 인구밀도를 얻기 위해선 population컬럼이 필요하고, area (sq. mi) 컬럼이 필요하다 즉, merge가 진행되어야한..
Numpy - 정렬 : sort, np.sort, 축, 내림차순 배열 만들기 위와 같은 배열을 만들었다. 배열.sort() : 원본 배열의 값이 변경됨 np.sort(배열) : 정렬된 배열의 복사본 생성, 원본은 변경 없음 1. arr.sort() 오름차순으로 정렬되었으나, 원본 자체가 변경되었다. 2. np.sort(arr) np.sort를 이용해 정렬한 객체를 np_sorted로 받았다. 이는 정렬이 잘 되었는데, 원본은 어떨까? 26번 다음 27번으로 바로 다음에 실행한 결과 arr 원본은 순서가 그대로 유지되었다. 3. 축, axis 새로운 2차원 배열을 생성하자 여기서 첫번째 컬럼만 정렬하려면 슬라이싱과 인덱싱으로 첫번째 컬럼을 지정해서 정렬해주면 된다. 열 방향으로 각 행을 오름차순 정렬하려면 axis=1을 넘겨주면 된다. 4. 내림차순 파이썬의 문법의 :..