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

손지호·2024년 1월 22일
0

1. 다음 중 누락된 값을 빈 문자열로 바꾸는 방법은 무엇인가요?

① df.isna()=''
② df.loc[df.isna()]=''
③ df.fillna('')
④ df.replace(NaN,'')

2. 다음 df 데이터프레임의 df.fillna(method='ffill')의 결과로 맞는 것은 무엇인가요?

df
-------A----B----C----D
0-----NaN--2.0--NaN---0
1-----3.0--4.0--NaN---1
2-----NaN--NaN--NaN---5
3-----NaN--3.0--NaN---4


-------A----B----C----D
0-----NaN--2.0--NaN---0
1-----3.0--4.0--NaN---1
2-----3.0--4.0--NaN---5
3-----3.0--3.0--NaN---4

-------A----B----C----D
0-----3.0--2.0--NaN---0
1-----3.0--4.0--NaN---1
2-----NaN--3.0--NaN---5
3-----NaN--3.0--NaN---4

-------A----B----C----D
0-----NaN--2.0--2.0--0.0
1-----3.0--4.0--4.0--1.0
2-----NaN--NaN--NaN--5.0
3-----NaN--3.0--3.0--4.0

-------A----B----C----D
0-----2.0--2.0--0.0--0.0
1-----3.0--4.0--1.0--1.0
2-----5.0--5.0--5.0--5.0
3-----3.0--3.0--4.0--4.0

3. 2번의 데이터프레임을 사용해여 다음과 같은 데이터프레임을 만들기 위한 명령은 무엇인가요?

-------A----B----C----D
0-----2.0--2.0--2.0--0.0
1-----3.0--4.0--4.0--1.0
2-----5.0--5.0--5.0--5.0
3-----3.0--3.0--3.0--4.0

① df.fillna(method='ffill').fillna(method='bfill')
② df.fillna(method='ffill', axis=1).fillna(method='bfill')
③ df.fillna(method='ffill').fillna(method='bfill', axis=1)
④ df.fillna(method='ffill', axis=1).fillna(method='bfill', axis=1)

4. 정규 표현식 \d{2}.\D로 찾을 수 없는 문자열은 무엇인가요?

① 12.. ② 123. ③ 1234 ④ 12AB

5. 다음과 df 데이터프레임에서 df.replace(r'ba.*', 'new', regex=True)의 결과는 무엇인가요?

df
-----A----B
0---bat--abc
1---foo--bar
2--bait--xyz


-----A----B
0---new--abc
1---foo--new
2---new--xyz

-----A----B
0---bat--abc
1---foo--bar
2---new--xyz

-----A----B
0---new--abc
1---foo--new
2--newt--xyz

-----A----B
0---bat--abc
1---foo--bar
2---new--xyz








<풀이>

1. 답 ③

①의 df.isna() 메서드는 누라된 원소를 찾아 True와 False로 반환하는 메서드로 값을 대입할 수 없음. ②의 loc 메서드는 isna() 메서드가 반환하는 2차원 배열을 인덱스로 받을 수 없다. ④는 NaN을 표현하려면 넘파이 np.nan을 사용해야 한다.

2. 답 ①

②는 df.fillna(method='bfill')의 결과. ③은 df.fillna(method='ffill', axis=1)의 결과. ④는 df.fillna(method='bfill', axis=1)의 결과이다.

3. 답 ④

①의 결과
-------A----B----C----D
0-----3.0--2.0--NaN---0
1-----3.0--4.0--NaN---1
2-----3.0--4.0--NaN---5
3-----3.0--3.0--NaN---4
②의 결과
-------A----B----C----D
0-----3.0--2.0--2.0--0.0
1-----3.0--4.0--4.0--1.0
2-----NaN--3.0--3.0--5.0
3-----NaN--3.0--3.0--4.0
③의 결과
-------A----B----C----D
0-----2.0--2.0--0.0--0.0
1-----3.0--4.0--1.0--1.0
2-----3.0--4.0--5.0--5.0
3-----3.0--3.0--4.0--4.0

4. 답 ③ 마지막 문자는 숫자가 아닌 문자여야 한다.


5. 답 ①

②는 df.replace(r'ba.{2}', 'new', regex=True)의 결과. ③은 df.replace(r'ba.', 'new', regex=True)의 결과. ④는 df.replace(r'.{4}','new', regex=True)의 결과이다.

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

0개의 댓글