혼자 공부하는 데이터 분석 with 파이썬 02-2 확인문제

손지호·2024년 1월 15일
0

1. 다음과 같은 데이터프레임 df가 있을 때 loc 메서드의 결과가 다른 하나는 무엇인가요?

col1col2
0 a 1
1 b 2
2 c 3

① df.loc[[0,1,2],['col1', 'col2']]
② df.loc[0:2,'col1', 'col2']
③ df.loc[:2,[True, True]]
④ df.loc[::2,'col1':'col2']

2. 다음 중 뷰티플수프 객체 tag 아래에 있는 < table > 태그를 찾는 뷰티플수프 명령으로 올바르지 않은 것은 무엇인가요?

① tag.find_all('table')
② tag('table')
③ tag.find('table')
④ tag.find(id='table')

3. 다음 중 < div id='header' class='highlight'>< /div>와 같은 태그를 찾을 수 있는 뷰티플수프 명령은 무엇인가요?

① tag.find(attrs={'class':'highlight'})
② tag.find('header')
③ tag.find(id='div')
④ tag.find(class='highlight')

4. 다음과 같은 판다스 데이터프레임에 df.apply(lambda roew:row['col1']+row['col2'], axis=1) 명령을 적용했을 때 반환되는 값으로 올바른 것은 무엇인가요?

① 14,25,36
② 5,7,9
③ 6,15
④ 21

5. 다음 두 데이터프레임 df1, df2를 합쳐서 데이터프레임 df3를 만들려고 한다. 다음 중 올바른 판다스 명령은 무엇인가요?

① fromstring()
② json_loads()
③ read_json()
④ json()








<풀이>

1. 답 ④ loc 메서드에는 레이블 배열이나 불리언 배열을 전달할 수 있다. 또 슬라이스 연산자를 사용할 수 있다. 다만 파이썬의 슬라이스 연산자와 다르게 마지막 항목도 포함한다. 슬라이싱 시작과 끝이 첫 번째 항목과 마지막 항목을 의미할 때는 생략할 수 있다. 파이썬 슬라이스 연산자처럼 스텝을 지정하여 지정한 개수만큼 건너뛰면서 행과 열을 선택한다.


2. 답 ④ 뷰티플수프의 find(), find_all() 메서드에 태그 이름을 지정하여 HTML에서 원하는 태그를 찾을 수 있다. find_all() 메서드는 생략 가능하다. find()와 find_all() 메서드의 id 매개변수를 사용하면 태그의 id 속성ㅇ르 기준으로 태그를 찾는다.


3. 답 ① 뷰티플수프의 find()와 find_all() 메서드의 attrs 매개변수에 찾으려는 태그가 가진 속성을 지정할 수 있다.

②는 tag.find('div')가 맞다. ③는 tag.find(id='header')가 맞다. ④는 tag.find(class_='highlight')가 맞다.

4. 답 ② apply() 메서드에 적용한 람다 함수는 df 데이터프레임의 모든 행에 각각 적용되므로 5, 7, 9가 반환된다.


5. ③ df1의 col1과 df2의 col3를 기준으로 두 데이터프레임을 합친다. how='outer'로 지정하면 두 열의 값이 다른 행은 별개의 행으로 남는다.

①과 ②는 공통된 열이 없기 때문에 오류가 발생한다. ④는 두 열의 값이 같은 행만 합쳐지기 때문에 df3는 다음과 같아진다.
df3
----col1----col2----col3----col4
0---a--------1-------a-------10
1---b--------2-------b-------20

profile
초보 중의 초보. 열심히 하고자 하는 햄스터!

0개의 댓글