어느덧 3주차 스터디까지 왔다! 와아 ~~~~ !!!
2주차 우수혼공족에 선정되어 간식 선물까지 받았다 ~~~ !!! 꺄아 ~~~~ !!!
▶ 요약
3-1. 불필요한 데이터 삭제하기
- *.loc[]
. slicing(슬라이싱)
( *.loc[:, '번호':'등록일자'] )
. boolean array(불리언 배열)
( df.loc[:, df.column != 'map'] )
- *.drop()
. 지칭하는 column을 삭제
( *.drop(column_name, axis=1) )
. 지칭하는 row를 삭제
( *.drop([0,1]) # 0행, 1행을 삭제 )
- *.dropna()
. NaN 값을 1개라도 갖고 있으면 column 삭제
( *.dropna(axis=1) )
. NaN 값을 모두 갖고 있으면 column 삭제
( *.dropna(axis=1, how='all') )
- *.duplicated()
. 지정한 columns의 값이 동일하면 중복된 행의 값을 리턴
( *.duplicated(subset=['도서명','저자','ISBN'], keep=False) )
- *.groupby()
. 지정한 columns의 값이 동일한 것들을 묶어줌
( *.groupby(by=['도서명', '저자', 'ISBN', '권'], dropna=False).sum() )
3-2. 잘못된 데이터 수정하기
- *.info()
. DataFrame의 다양한 통계를 보여주는 유용한 method
- *.isna()
. NaN 값을 갖고 있는 column을 보여줌
( *.isna().sum() )
- Nan
. None
. np.nan
- *.fillna()
. NaN 값을 갖고 있는 columns에 지정한 값을 채움
( *.fillna('없음') )
( *['부가기호'].fillna('없음') )
( *.fillna( {'부가기호':'없음'} ) )
- *.replace()
. 값 exchange
( *.replace(np.nan, '없음') )
( *.replace( [np.nan, '2021'], ['없음', '21']) )
( *.replace( {np.nan: '없음', '2021' : '21']) )
( *.replace( {'부가기호': np.nan}, '없음') )
( *.replace( {'부가기호': {np.nan : '없음'}, '발행년도': {'2021' : '21'}} ) )
. 정규표현식
( *.replace( {'발행년도': {r'\d{2}(\d{2})' : r'\1'}}, regex=True) )
▶ 기본 미션
p. 182의 확인 문제 2번 풀고 인증하기
[문제]
1번 문제의 df1 데이터프레임에서 'col1' 열의 합을 계산하는 명령으로 올바르지 않은 것은 무엇인가요?
① df1['col1'].sum()
② df1[['col1']].sum()
③ df1.loc[:, df1.columns == 'col1'].sum()
④ df1.loc[:, [False,False,True]].sum()
※ 위 문제에서 bold 표기한 부분은 책에서 잘못된 부분을 수정한 내용입니다.
- 문제에서 "것은" 부분이 빠져있었습니다.
- 보기에서 "df"가 아니라 "df1"이라고 해야합니다.
[풀이]
④ 에서 boolean으로 표기된 내역을 보면 [False,False,True]로 되어있기에 'col1'이 아니라 'col3'의 합계가 출력된다.
그러면, 이것을 검증해보자.
일단, 데이터를 준비해봤다.
NaN 값을 처리하기 위해 Numpy의 np.nan을 사용했다.
각 보기의 값을 확인해보자.
확인 끝~
▶ 선택 미션
p. 219의 확인 문제 5번 풀고 인증하기
[문제]
다음과 같은 df 데이터프레임에서 df.replace(r'ba.*', 'new', regex=True)의 결과는 무엇인가요?
보기는 생략.
※ 위 문제에서 bold 표기한 부분은 책에서 잘못된 부분을 수정한 내용입니다.
- 문제에서 "같은" 부분이 빠져있었습니다.
[풀이]
정규식을 이용한 replace() 문제이다.
정규식을 보면 r'ba.*' 부분을 살펴보면 'ba'로 시작하는 문자열을 지칭하고 있다.
그래서 'ba'로 시작하는 문자열을 'new'로 바꿔치기하면 된다.
교재(책) 보기로 보면 ③ 번에 해당하는 결과가 정답이 된다.
이것을 검증해보자.
이번 Chapter는 비교적 수월했다.
남은 기간 스스로에게 파이팅 !!!
'Books' 카테고리의 다른 글
[혼공데분] 5주차_데이터 시각화하기 (0) | 2024.02.01 |
---|---|
[혼공데분] 4주차_데이터 요약하기 (0) | 2024.01.28 |
[혼공데분] 2주차_데이터 수집하기 (2) | 2024.01.16 |
[혼공데분] 1주차_데이터 분석을 시작하며 (1) | 2024.01.07 |
[혼공학습단 11기] 혼자 공부하는 데이터 분석 with 파이썬 (0) | 2023.12.27 |