티스토리 뷰
☆★☆월요일 키워드☆★☆
실행내용 | 코드 | 비고(설명) |
데이터프레임 만들기 | df = pd.DataFrame() | |
결측치 | np.nan | not a number의 약자. 데이터 타입은 float |
컬럼 삭제하기 (axis 0:행, 1:열) | df.drop(columns, axis=n) | 해당 컬럼의 내용 삭제 |
데이터 프레임의 정보 보기 | df.info() | 내용, 데이터타입, 사용하는 메모리양 등 출력 |
데이터 프레임의 크기 출력하기 | df.shape() | (열의 개수, 행의 개수) 출력 |
데이터프레임의 데이터타입만 보기 | df.dtypes | |
데이터프레임의 요약정보 가져오기, 기술통계값 보기 |
<수치형 데이터의 요약정보 보기> df.describe() |
* count : 결측치를 제외한 빈도수 * mean : 평균 * std : 표준편차 * min : 최솟값 * '25%', '50%', '75%' : 값을 순차정렬 했을 때 앞에서부터 해당 위치에 있는 값. * max : 최댓값 |
<범주형 데이터의 요약정보 보기> df.describe(include='object') |
* unique : 결측치를 제외한 빈도수 * top : 최빈값 * freq : 최빈값의 빈도수 |
|
두 개 이상의 컬럼명 한 번에 가져오기 | df[['컬럼명1', '컬럼명2']] | 대괄호 두 개 겹사용 |
인덱스 번호로 데이터 가져오기 | df.loc[0] | |
데이터 검색하기 | df['컬럼명'].str.contains('검색어') | 검색어는 |나 &를 써서 여러 개 기입 가능 |
소문자로 만들기 | df['컬럼명'].str.lower() | |
특정 숫자 범위의 데이터 출력하기 | df[df['컬럼명'] >= n] | |
정렬하기 | df.sort_values(by=['컬럼명', '컬럼명'...], ascending=[True, True]) | **도움말로 더 알아보기 |
파일 저장하기 | df.to_csv('파일명', index=False) | |
파일 불러오기 | pd.read_csv('파일명') |
☆★☆화요일 키워드☆★☆
실행내용 | 코드 | 비고(설명) |
특정 url의 테이블 태그 찾기 | pd.read_html(url, encoding='cp949') | -url을 넣어주면 html페이지의 table 태그를 읽어옴. -해당 html의 모든 table을 가져와서 리스트 형태로 변환됨. |
컬럼명 변경하기 |
temp_list = []
for a in table[:-1]:
a.columns = cols
print(a.columns)
temp_list.append(a)
|
컬럼명을 변경해주기 위해 데이터 프레임을 하나씩 불러와서 컬럼명을 변경해줌. |
수집한 데이터를 하나의 데이터프레임으로 합치기 |
pd.concat() | |
결측치 제거하기 | .dropna() | |
조건에 일치하는 데이터 제거하기 |
변수명[~df['컬럼명'].str.contains('제거할 데이터가 포함한 공통언어")]
|
조건의 반대 앞에는 ~표시로 표현 (.str.contains는 검색할 때 쓰는 코드) |
데이터 쉬었다 가져오기 |
import time
time.sleep(n)
|
n에는 초단위의 숫자. -많은 데이터를 가져올 때 서버에 부담주지 않기 위해 필요. |
from tqdm import tqdm, trange
|
실행내용 | 코드 | 비고(설명) |
html 파일 읽어오기 | pd.read_html(url, encoding="cp949") | |
requests로 HTTP 요청하기 |
import requests
|
read_html로 수집이 안되는 데이터를 수집할 수 있도록 해줌. |
html 가져오기 |
from bs4 import BeautifulSoup as bs
|
|
html에서 특정 데이터 지정해서 가져오기 |
html.find('a')
|
find로 특정 태그, id, class를 지정해서 원하는 태그를 찾을 수 있음. |
html에서 지정한 데이터 모두 가져오기 |
html.find_all('a')
|
|
html에서 데이터 가져오기 |
html.select('table > tr > td> span.클래스명')
|
-class는 span 뒤에 점(.) -id는 span 뒤에 샾(#) |
데이터의 일부 가져와서 보기 |
df.head() , df.tail()
|
|
결측 데이터 제거하기(axis 0:행, 1:열) | table[0].dropna() | |
데이터 프레임 합치기 | pd.concat([df1, df2, df3]) | |
중복데이터 제거 | df.drop_duplicates() | |
날짜 column의 첫 row값 확인 | date = df.iloc[0]["날짜"] | |
파일로 저장하기 | df.to_csv(file_name, index=False) | |
파일 읽어오기 | pd.read_csv(file_name) |
☆★☆수요일 키워드☆★☆
실행내용 | 코드 | 비고(설명) |
HTTP 요청을 통한 데이터 수집 환경 준비하기 |
import requests
from bs4 import BeautifulSoup as bs
import pandas as pd
|
|
HTTP 요청 > get | 필요한 데이터를 Query String에 담아 전송 | **get or post의 여부 확인 ( 브라우저 > 네트워크 탭 > Headers > Request Method )를 통해 확인 가능 |
HTTP 요청 > post | 전송할 데이터를 HTTP 메시지 Body의 Form Data에 담아 전송 |
|
인증서 없는 사이트의 에러 메시지 삭제 |
response = requests.post(url, params = params, verify=False)
|
SSL 인증서 확인과정 생략 |
response.test에 bs 적용하기 | pd.read_html(response.text)[0] | 표 형태로 정돈되어 출력됨 |
마지막 페이지번호 찾기 |
'TIL & WIL > Python' 카테고리의 다른 글
Python 7일차. pandas만으로 데이터 수집하기 (0) | 2023.01.12 |
---|---|
Python 6일차. 판다스(Pandas) 실습해보기 (0) | 2023.01.12 |
Python 5일차. 모듈과 패키지, 예외처리 (0) | 2023.01.06 |
Python 5일차. getter와 setter, mangling, method (0) | 2023.01.06 |
Python 4일차. 클래스(class), 상속, 데코레이터(decorator) (0) | 2023.01.05 |