BeautifulSoup로 같은 문서에 같은 텍스트를 찾아도 여러 방식으로 작성할 수 있다는 것을 알게 되었다.
시간을 측정하는 매직 커맨드와 시리즈 다루기, 판다스의 메소드 등을 공부했다.
BeautifulSoup 메소드 3가지
만약 어떤 BeautifulSoup 객체 soup에서 class가 sample인 div 태그를 찾는다고 한다면, 그 태그의 텍스트는 아래와 같은 방법으로 추출할 수 있다.
1. soup.select("div.sample")[0].text
2. soup.find('div', {'class':'sample'}.text
3. soup.find_all('div', {'class':'sample'}[0].text
매직 커맨드(Magic Commands)
Ipython 환경에서 %기호로 시작하는 명령을 매직 커맨드라고 한다.
본 글에서는 시간 측정 커맨드를 소개한다.
1. %time : 명령어 뒤의 한 줄 코드를 실행시 걸리는 시간 반환
2. %timeit : time + iteration 개념으로, 정확도 향상을 위해 명령어 뒤의 한 줄 코드를 여러 번 실행하고 걸리는 평균 시간을 측정하여 반환
3. %%time : 셀 전체에 대해 코드 실행시 걸리는 시간 반환
4. %%timeit : 셀 전체에 대해 코드 실행을 여러 번 하고 걸리는 평균 시간을 측정하여 반환
% 하나로 시작하면 라인에 적용, % 두개로 시작하면 셀에 적용되는 것이다.
위에서 언급한 BeautifulSoup의 메소드 select, find, find_all에 대해서 실행 시간을 측정한 결과
find -> find_all -> select 순으로 빠른 것을 알 수 있었다.
map, apply, tqdm
map는 Series에, apply는 DataFrame과 Series에 사용하는 pandas의 메소드이다. 반복문 대신 사용할 수 있고 반복문을 사용할 때에 비해 속도가 빠르다.
그러나 많은 작업을 할 때는 어느정도 진행되었는지 체크가 안 된다. 그래서 tqdm의 도움을 받는 것이다.
progress_map과 progress_apply는 tqdm에서 pandas를 지원하는 기능으로, 진행 상황을 표시해준다.
그러나 많은 작업을 할 때는 어느정도 진행되었는지 체크가 안 된다. 그래서 tqdm의 도움을 받는 것이다.
progress_map과 progress_apply는 tqdm에서 pandas를 지원하는 기능으로, 진행 상황을 표시해준다.
tolist()와 to_list의 차이
둘 다 pandas의 메소드로, 시리즈를 리스트로 변환할 때 사용한다.
과거 tolist()만 사용했는데 pandas 0.24.0에 to_list()가 생긴 것이다.
pandas 버전에 따라 to_list()가 동작하지 않을 수도 있다.
과거 tolist()만 사용했는데 pandas 0.24.0에 to_list()가 생긴 것이다.
pandas 버전에 따라 to_list()가 동작하지 않을 수도 있다.
반응형
'AI SCHOOL > TIL' 카테고리의 다른 글
[DAY 20] SQL 많은 문제 풀이와 having, order by (0) | 2023.01.20 |
---|---|
[DAY 19] Week 5 Insight Day 으쌰으쌰팀과 미니프로젝트 계획 (0) | 2023.01.19 |
[DAY 17] Jupyter Notebook 사용, 장점, 단축키 (0) | 2023.01.17 |
[DAY 16] 코랩, 개발자도구, 파이썬에 대한 팁 (0) | 2023.01.16 |
[DAY 15] SQL 첫 강의 - distinct, as, limit, 집계함수, where, group by (2) | 2023.01.13 |
댓글