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

손지호·2024년 1월 21일
0

1. 다음 df 데이터프레임에서 'col2' 열만 삭제하는 명령으로 올바른 것은 무엇인가요?

--------col1-------col2-------col3
0---------1--------a----------NaN
1---------2--------NaN--------NaN
2---------3--------c---------100.0

① df.drop('col2', axis=1)
② df.dropna(axis=1)
③ df.dropna(thresh=2, axis=1)
④ df.dropna(how='all', axis=1)

2. 1번 문제의 df 데이터프레임에서 'col1' 열의 합을 계산하는 명령으로 올바르지 않은 것은 무엇인가요?

① df['col1'].sum()
② df[['col1']].sum()
③ df.loc[:, df.columns=='col1'].sum()
④ df.loc[:, [False, False, True]].sum()

3. 1번 문제의 df 데이터프레임에서 세 번째 행을 골라내는 명령으로 맞지 않는 것은 무엇인가요?

① df[2:3]
② df[df['col3']>100]
③ df.loc[2:2]
④ df.loc[2:3]

4. 다음 df 데이터프레임에서 중복된 행을 삭제하는 명령으로 올바르지 않은 것은 무엇인가요?

----------col1---------col2--------col3
0---------1-------------a-----------10
1---------2-------------b-----------20
2---------3-------------c-----------30

① df[~df.duplicated()]
② df[~df.duplicated(keep='last')]
③ df[~df.duplicated(keep=False)]
④ df.drop_duplicates()

5. 4번 문제의 df 데이터프레임에서 groupby() 메서드로 'col3' 열을 올바르게 더하지 못한 것은 무엇인가요?

① df.groupby(by=['col1', 'col2']).sum()
② df.groupby(by=['col2', 'col1']).sum()
③ df.group(by=['col1', 'col2']).sum()
④ df.groupby(['col1', 'col2']).sum()








<풀이>

1. 답 ① 지정한 'col2' 열만 삭제.

②는 NaN 있는 모든 열 삭제.
③는 NaN이 아닌 값이 2개 이상인 열 삭제하므로 'col3' 열만 삭제.
④는 모든 값이 NaN인 열을 삭제하므로 어떤 열도 삭제되지 않음.

2. 답 ④ col3 열의 합을 계산한다.


3. 답 ② 'col3' 열에서 100이상인 행은 없음.

③과 ④는 모두 세 번째 행을 반환함. loc 메서드에 슬라이싱 사용할 때 마지막 인덱스도 포함된다.

4. 답 ③ duplicated() 메서드에 keep=False를 지정하면 중복된 행을 모두 True 표시함. 따라서 ③은 중복된 행을 모두 제외한 결과를 반환.

①과 ④는 모두 세 번째 행을 제외한 데이터프레임을 반환하고, ②는 첫 번째 행을 제외한 데이터프레임을 반환한다.

5. 답 ③ 데이터프레임에는 group() 메서드 없음.

④에서 매개변수 by를 생략하고 열 이름을 지정할 수 있음. ①과 ②는 그룹으로 묶을 열의 순서가 바뀌었지만 'col3' 열의 합계는 동일.

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

0개의 댓글