본문 바로가기

파이썬111

특정 사이트 크롤링 및 데이터프레임 생성 □ 아래와 같은 형식으로 데이터를 표시하는 웹사이트 크롤링 후 크롤링한 데이터를 데이터프레임으로 저장해보자 #라이브러리 호출 from bs4 import BeautifulSoup from urllib.request import Request, urlopen import pandas as pd #사이트 url_base = 'http://www.chicagomag.com' url_sub = '/Chicago-Magazine/November-2012/Best-Sandwiches-Chicago/' html = urlopen(url) soup = BeautifulSoup(html, "html.parser") #크롤링 타겟태그 선택 target_area = soup.select('div.sammy') #크롤링 데이.. 2024. 2. 13.
판다스 : .filter() 함수 □ filter 함수 ○ 데이터프레임 또는 시리즈에 대해 특정 조건을 적용하여 조건을 만족하는 요소만을 선택하는데 사용 ○ filter 함수는 주어진 함수 또는 조건을 각 그룹에 적용하고, 각 그룹에서 조건을 만족하는 데이터를 반환 ○ filter 함수는 그룹화된 객체에 대해 특정 조건을 적용하여 그 조건을 만족하는 그룹만을 선택하는 기능을 수행. 기본적으로, 조건을 만족하는 그룹은 그대로 유지되고, 만족하지 않는 그룹은 제외됨 □ 예제 ○ 데이터불러오기 #라이브러리 불러오기 import numpy as np import seaborn as sns #데이터 불러오기 tips = sns.load_dataset('tips') ○ size 필드의 데이터 분포현황 조회 tips['size'].value_coun.. 2024. 2. 8.
판다스 : agg 심화 □ .agg() : 여러 개의 집계함수 한 번에 사용하기 □ 기본적으로 리스트, 딕셔너리 형태의 데이터를 agg함수에 담아 전달함 □ 형식 : 보통, ○ 단일 : 모든 열에 여러 함수를 매핑 : group 객체.agg([함수1, 함수2, 함수3, ...]) - 데이터 불러오기 import pandas as pd import numpy as np #데이터 불러오기 df = pd.read_csv('C:/python/DataScience/Data/data/python_data/gapminder.tsv', delimiter='\t') df.head() - 그룹화 후 agg함수를 활용하여 집계연산(집계연산은 numpy에서 제공하는 집계함수 사용) # 단일 : 집계 메서드를 리스트에 담아 전달-연도별 그룹화한 li.. 2024. 2. 8.
판다스 : 다중데이터 불러오기 □ glob 라이브러리 사용 □ 방법 1 : 데이터 하나하나 불러오기 import pandas as pd import glob nyc_taxi_data = glob.glob('C:/python/DataScience/Data/data/python_data/fhv_*') #glob라이브러리를 활용해 담긴 변수의 인덱스번호를 활용하여 데이터 저장 taxi1 = pd.read_csv(nyc_taxi_data[0]) taxi2 = pd.read_csv(nyc_taxi_data[1]) taxi3 = pd.read_csv(nyc_taxi_data[2]) taxi4 = pd.read_csv(nyc_taxi_data[3]) taxi5 = pd.read_csv(nyc_taxi_data[4]) #저장된 데이터 concat .. 2024. 2. 7.
판다스 : .melt() 함수2 (한 필드의 고정 값이 2개 이상시) □ 라이브러리 호출 및 데이터 불러오기 #라이브러리 호출 import pandas as pd #파일불러오기 weather = pd.read_csv('C:/python/DataScience/Data/data/python_data/weather.csv') □ 멜트 1차 시도 : 특정 열 기준으로 멜트작업 진행 ○ element 고정값이 2개(tmax, tmin)인 것을 확인 weather_melt = weather.melt(id_vars=['id','year','month','element'], var_name = 'day', value_name = 'temp' ) □ 멜트 2차 시도 : 특정 열 기준으로 멜트 재작업 진행 ○ .reset_index() : 인덱스 정리 + reset_index()를 활용하여.. 2024. 2. 7.
판다스 : 결측값 □ 결측값 ○ 누락값을 의미 ○ 0 또는 '' 과는 다른의미임 ○ 데이터 자체가 없다는 의미임 ○ 그렇다고 같다라는 의미도 아님 ○결측값과 True, False, 0, ' ' 비교결과 → 모두 False 출력 print(NaN == True) print(NaN == 0) print(NaN == False) print(NaN == NaN) #값 자체가 없어, 자신과 비교해도 거짓 ○결측값을 확인하는 매서드 isnull, notnull → True, True, False 출력 print(pd.isnull(NaN)) print(pd.isnull(nan)) print(pd.notnull(NaN)) 2024. 2. 2.
판다스 : 중복개수 확인, 조건 False일 때 에러발생 코드 □ 문법 ○ 변수명['필드명'].value_counts() visited['site'].value_counts() ○ assert : False일시 assertionError assert ps_vs.shape[0] == 19 #참이라 오류반환 X / 행수와 같아서 True assert ps_vs.shape[0] == 10 #오류반환 / 행수와 달라서 False 2024. 2. 2.
크롤링 : 멜론 □ 목적 ○ 차트 1~100위 곡명, 아티스트, 엘범명 데이터 크롤링 ○ 아티스트 세부정보 접속 링크 추출 ○ 엘범명 세부정보 접속 링크 추출 □ 코딩과정 ○ 라이브러리 호출 ○ 함수정의 : 아티스트, 엘범 세부정보 접속시 자바스크립트 코드 안에 있는 번호 추출을 위해 함수지정 ○ * .text 는 해당 태그 또는 하위 태그안의 텍스트를 출력하지만, .string은 특정 태그값이 지정되었을 때 정확한텍스트를 추출함 □ 코드 # 라이브러리 호출 import requests import re from bs4 import BeautifulSoup # 크롤링 페이지 입력 # 네이버뷰 주소 + 검색키워드 target_url = 'https://www.melon.com/chart/index.htm' print(f'.. 2024. 2. 2.
판다스 : 예제(concat, 정규표현) □ 예제 ○ 데이터 프레임 병합 ○ 필드 두개 생성 및 기존필드 값을 가공하여 신규 필드에 저장 - 정규표현 활용 - split 및 리스트 인데스 활용 □ 코드 import re #정규표현를 위한 라이브러리 호출 import pandas #판다스 라이브러리 호출 #데이터프레임 호출 및 병합 paper_2011 = pd.read_csv('C:/Users/romangrism/Desktop/Datasicence/Data/data/python_data/paper_information_2011.csv') paper_2012 = pd.read_csv('C:/Users/romangrism/Desktop/Datasicence/Data/data/python_data/paper_information_2012.csv') p.. 2024. 2. 2.