지난 주에 분명 가볍게 가자고 했는데, 우연히 그 글이 우수글로 뽑혔다.
커피 쿠폰 감사합니다.
* 주어진 데이터를 df로 정의했다고 가정
1) 열 삭제
- loc로 슬라이싱 : df.loc[:, '시작하는 열 이름' : '끝나는 열 이름'] //연속적인 열만 선택할 수 있음
- colums로 비교연산 : df.colums != '불필요한 열 이름' //불필요한 열 선택
- drop() 메서드 : df.drop(['불필요한 열 이름', '다수 열 가능'], axis=1) //axis=1이면 열, 0이면 행
,inplace=True //현재 선택한 데이터프레임 df에 바로 수정, 저장됨
- dropna() 메서드 : df.dropna(axis=1) // NaN이 하나 이상 포함된 행이나 열 삭제
//axis=1이면 열, 0이면 행
2) 행 삭제
- drop() 메서드 : df.drop[0,1] // 인덱스 0부터 1까지 2개의 행 선택 삭제, 숫자인 경우에만 사용 가능
- [] 연산자와 슬라이싱 : df[2:] // 인덱스 2부터 모든 행 선택, 2 미만 제외
- [] 연산자와 불리언배열 : df['검색할 행'] == '검색키워드' // 엑셀 필터 기능, 특정 키워드가 있는 행 선택
3) 중복된 행 찾기
- duplicated() 메서드 : sum(df.duplicated()) // 중복된 행 개수 합산
sum(df.duplicated(subset=['일부 열 선택'])) // 선택한 열에서 중복 확인
4) 그룹별로 모으기
- groupby() 메서드 : df.froupby(by=['그룹으로 묶을 기준 열'], dropna=False)
1) 데이터프레임 정보 요약 확인
- df.info() // 데이터프레임 요약 정보 확인
// 전체 행 개수, 열 개수, 열 이름, 각 열마다 값이 있는 행 개수, 열 데이터 타입
2) 누락된 값 처리하기
- df.isna().sum() // 각 행에서 비어있는 개수
- df.notna().sum() // 각 행에서 값이 있는 개수
3) 데이터 타입 변경(실수에서 정수)
- df.astype({'선택한 열': 'int32'})
4) NaN 입력
- import numpy as np //넘파이 패키지에 있는 np.nan 사용
- df.loc['NaN으로 바꿀 데이터 행 번호', 'NaN으로 바꿀 데이터 열 이름'] = np.nan
5) 누락된 값 바꾸기
- df.fillna('없음') // df 데이터프레임에 있는 모든 NaN을 '없음' 문자열로 대체 후 저장
- df['열 이름'].fillna('없음') // df 중 '열 이름' 열에서만 대체
- df.replace('원래 값', '새로운 값') // 원래 값을 새로운 값으로 대체
- df.replace(['원래 값1', '원래 값2'], ['새로운 값1', '새로운 값2']) // 다수 값 대체
- df.replace({'열 이름' : '원래 값'}, '새로운 값') // 열마다 새로운 값으로 대체
6) 정규 표현식
- 숫자 찾기 \d
- 문자 찾기 .
7) 잘못된 값 바꾸기
- df.str.contains('찾는 값').sum() // 찾는 값이 포함된 행 개수
8) 누락된 정보 채우기
- 채울 수 있는 정보는 최대한 채우기
p. 182, 2번 문제
4번
* 문제 오탈자 있습니다.
2. 1번 문제의 df1 데이터프레임에서 'col1'열의 합을 계산하는 명령으로 올바르지 않은 것은 무엇인가요?
p. 219, 5번 문제
1번
* 2번, 4번 답안의 내용이 동일한 것 같습니다.
#혼공 #혼공학습단