DataFrame의 행과 열 - loc() . *.loc[[0,1], ['bookname':'authors']] . *.loc[0:1, 'bookname':'authors'] : DataFrame에서의 slicing은 마지막 값을 포함한다. (일반적으로는 포함하지 않는다)
▶ 기본 미션
p150의 확인 문제 1번 풀고 인증하기
□ 다음과 같은 데이터 프레임 df가 있을 때 loc 메서드의 결과가 다른 하나는 무엇인가요?
① df.loc[[0, 1, 2], ['col1', 'col2']]
② df.loc[0:2, 'col1':'col2']
③ df.loc[:2, [True, True]]
④ df.loc[::2, 'col1':'col2']
보기를 잘 살펴보면 ①, ②는 그냥 보면(?) 되고 ^^ 답은 ③, ④ 중 하나가 될 것이라는 것을 직감적으로 알 수 있다 !!!
③번을 실제 해보면 다음과 같이 출력이 된다.
응?! 'True' 가 도대체 어떻게 반응한다는 거지!? 해당 Column을 포함할지 안할지를 지정하는 것인가!?
그러면 조금 다른 사례를 확인해보자 !!!
그렇다!!! 가설이 맞았다. 3개의 Columns에 대해서 [참, 거짓, 참]으로 했더니 정말로 그렇게 출력이 되었다.
그러면, 정답은 ④이어야 하는데, 한 번 살펴보자.
'::2'라고 했기 때문에 하나씩 건너뛰라고 했기 때문에 0번행, 2번행만 출력이 되고 있다.
▶ 선택 미션
p. 137 ~ 138 손코딩 실습으로 원하는 도서의 페이지 수를 추출하고 화면 캡쳐하기.
① 온라인 서점의 검색 결과 페이지 URL을 만듭니다.
② requests.get() 함수로 검색 결과 페이지의 HTML을 가져옵니다.
③ BeautifulSoup로 HTML을 파싱합니다.
④ BeautifulSoup의 find() 메서드로 <a> 태그를 찾아 상세 페이지 URL을 추출합니다.