비어있는 행은 True로 표시
)float64
로 자동으로 바뀐다.{'도서권수' : 'int32'}
Numpy 패키지의 np.nan을 사용한다.
(데이터타입 상관 없이 NaN 값으로 표시할 수 있다.)isna() 메서드와 loc 메서드를 통해 누락된 값을 원하느 값으로 바꿀 수 있다.
fillna() 메서드에 원하는 값을 전달하면 NaN을 대체할 수 있다.
⬇️ 특정 열만 선택해서 NaN을 바꾸려면
ns_book4['부가기호'].fillna('없음')
특정 열의 NaN을 바꾸면서 전체 데이터프레임을 반환하려면 딕셔너리 형태로 fillna() 메서드에 전달한다.
ns_book4.fillna({'부가기호' : '없음')
replace() 메서드는 NaN은 물론 어떤 값도 바꿀 수 있다.
리스트 형식 or 딕셔너리 형식으로 전달
)딕셔너리 형식으로 전달
)💡 정규 표현식
- 문자열 패턴을 찾아서 대체하기 위한 규칙 모음
- 파이썬에서는 replace() 메서드에 정규 표현식을 사용할 수 있다.
- replace() 메서드에서 정규 표현식을 사용하기 위해서는 regex 매개변수를 True로 설정해야 한다. + 다른 문자열과 구분하기 위해 정규표현식 문자열 앞에 접두사
r
을 붙여줘야 한다.- 문법
위와 같은 데이터프레임에서 'col'열의 합을 계산하는 명령으로 올바르지 않은 무엇인가요?
1. df['col1'].sum()
2. df[['col1']].sum()
3. df.loc[:, df.columns == 'col1'].sum()
4. df.loc[:, [False, False, True]].sum() (💡정답)
- 불리언 배열의 값에 따라 True에 해당하는 열의 각 합을 구하는 명령이다.
위와 같은 데이터프레임에서 df.replace(r'ba.*', 'new', regex=True)의 결과는 무엇인가요?
문제 해설.)
- replace() 메서드: 값을 변경할 때 사용
- r'ba.*': ba 뒤에 하나 이상의 문자열이 존재하는 데이터를 검출하는 정규표현식
- regex=True: replace() 메서드 안에서 정규표현식을 사용하겠다는 명시적인 표현
=> ba 뒤 하나 이상의 문자열이 존재하는 데이터를 검출해서 new로 변경해라
=> bat, bar, bait이 new로 바뀐 1번이 정답이다.
💡정답