목적 : 데이타가 모두 정형화 되어서 DB에만 저장되어 있다면 크게 영향(?) 이 없을것도 같은데,
비정형 데이타 형식이면 비중이 더 높을거 같다.
- 누락된 데이타 처리하기
- pandas에서 na의 정의
- 존재하지 않거나, 존재하더라도 수집과정에서 검출되지 않은것을 의미
- np.nan
- 파이선의 None값도 NA값으로 처리
- na메소드 : P.271 (dropna, fillna, isnull, notnull)
- 누락된 데이타 골라내기 (2가지 관점으로 접근 : Series / DataFrame)
- DataFrame
보통 시계열 데이터 처리할때 사용하는 경우가 많다.- 로우&&컬럼 2가지 모두 체크
- dropna(how='all')
- 로우 or 컬럼 1가지라도 na 포함하는 경우 제외
- dropna() : 1가지라도 있으면 제외
- 로우&&컬럼 2가지 모두 체크
- df.dropna(thresh=2)
- df.fillna
- df.fillna({1: 0.5, 2: 0})
- null인 경우 컬럼 1번에 0.5, 2번 컬럼에 0을 입력처리
- df.fillna(0, inplace=True)
- 기존 객체를 변경
- data.fillna(data.mean())
- 평균값이나 중간값을 설정할 수 있다.
- P. 276 : fillan 함수 인자
- df.fillna({1: 0.5, 2: 0})
- DataFrame
- pandas에서 na의 정의
- 데이터 변형
- 중복값 제거
- data.duplicated() : 중복값이 있는것 True / False 체크
- data.drop_duplicates() : 중복값 제거해서 DataFrame 객체로 반환
- data.drop_duplicates(['k1', 'k2'], keep='last')
- 중복값이 있을때 기본은 앞에 있는것 사용, keep=last옵션으로 마지막 중복값 사용 처리
- 중복값이 있을때 기본은 앞에 있는것 사용, keep=last옵션으로 마지막 중복값 사용 처리
- 테이터의 형태를 변환
- map함수를 이용해서 신규 컬럼값 넣기
- data['animal'] = lowercased.map(meat_to_animal)
- replace하기
- data.replace(-999, np.nan)
- data.replace([-999, -1000], np.nan)
- data.replace([-999, -1000], [np.nan, 0])
- data.replace({-999: np.nan, -1000: 0})
- 축 색인 바꾸기
- data.index.map(transform) : 기존 객체를 변경
- data.rename(index=str.title, columns=str.upper) : 새로운 객채로 변경
- data.rename(index={'OHIO': 'INDIANA'}, columns={'three': 'peekaboo'}) : 축에 일부만 선택적으로 변경
- 개별화 / 양지화 (그룹별로 데이타 나누기)
- cats = pd.cut(ages, bins) : age는 원본 객체, bins는 그룹하려는 list값
- 반환하는 객체는 Categorical 객체이다.
- pd.cut(ages, bins, labels=group_names)
- group화면 영역에 라벨이름 붙이기
- pd.cut(data, 3, precision=2)
- data을 최대,최소값 기준으로 균등하게 3등분 하여라
- precision : 소수점아래 2자리까지 제한
- cats = pd.qcut(data, 3)
- 위에 예제와 비슷하지만 많이 다르다.
- 표준 변위치를 사용하기 때문에 적당한 같은 크기의 그룹을 나눌수 있다. P.286
- pd.qcut(data, [0, 0.1, 0.5, 0.9, 1.]) : 구분 범위를 정할 수 있다.
- cats = pd.cut(ages, bins) : age는 원본 객체, bins는 그룹하려는 list값
- 특이값 찾고 제외
- col[np.abs(col) > 3] : abs을 통해서 절대값 조건걸기
- data[(np.abs(data) > 3).any(1)]
- data[np.abs(data) > 3] = np.sign(data) * 3 : sign 양수 음수 파악
- dummy값 생성하기
- dummies = pd.get_dummies(df['key'], prefix='key')
- map함수를 이용해서 신규 컬럼값 넣기
- 중복값 제거
- 문자열 다루기
'파이선' 카테고리의 다른 글
데이타 집계와 그룹연산 (chap10) (0) | 2021.09.06 |
---|---|
데이터 준비하기:조인,병합,변형 (chap8) (0) | 2021.09.05 |
데이터 로딩과 저장, 파일형식 (chap6) (0) | 2021.09.02 |
pandas 시작하기 (chap5) (0) | 2021.09.01 |
Numpy기본 : 배열과 백터 연산 (chap4) (0) | 2021.08.30 |