pandas 데이터프레임 불필요한 데이터 제거 및 정리 예제 1번
흑흑 어려워 복잡해
그래도 해야지..ㅎ.. 감잡힐때까지 꾸준히 다양하게 적용해서 적어보는 것이 숙제일듯..!
데이터 프레임에서 불필요한 데이터를 제거하고 정리해서 업데이트 하는 방법..!
1. 열을 삭제하는 방법
- loc 메서드에 슬라이싱 or 불리언 배열 / drop() 메서드 사용해봄
2. 행 삭제 할때
- drop() 보다는 []연산자, 슬라이싱 or 불리언 배열
▶ []연산자와 불리언 배열은 특정 열의 값이 어떤 조건을 만족하는 행을 찾는 방식이라 더욱 즐겨 사용됨
3. 중복된 행을 찾는 방법
- groupby() , sum() 사용
4. 원본 데이터프레임에 업뎃
- updat() 메서드
- 인덱스 기준으로 업데이트를 위해 set_index() method, reset_index() method.
▶ 주석하고 코드하고의 행 이름같은게 좀 짬뽕되어서..ㅠ...(열이름 혼란으로 인해) 정리
1. 파일을 데이터 프레임으로 읽기
- pd.read_확장자명 (파일명 , lower_memory=False)
2. 불필요한 열/행 삭제
- drop(열이름, axis = 1) 열 삭제
- dropna() : NaN 하나 이상 있으면 삭제 최소 한개만 있어도 무조건 삭제 삭제..
- dropna(how='all') 모든값이 NaN을 가지고 있는 행or 열 삭제
3. 중복되는 값을 합치기 위한 기준 열 이름 선택
- 문자열은 groupby(by=)메소드로 합침
- 정수는 .sum() 으로 합치지 (평균안돼)
4. 중복된 행만을 제외하고 고유한 행만 추출
- duplicated() 로 중복값 확인 (불리언 배열로 반환)
+ sum() : True 가 1, False가 0이라 True 1을 더해서 중복된 행의 개수를 셀 수 있음.
▶ keep 매개변수를 선택해서 중복값 중 무엇을 남길지 선택해야함. 아니면 first 디폴트
5. 원본 데이터 업뎃
- duplicated()를 통해 중복된 행을 True로 표시한 불리언배열을 반전시켜(~) copy()하고 원본배열에서 고유한 행만 선택
- copy()를 써서 변수에 새로 저장을 해줘야. 아니면 메모리에 저장된다고 확신할 수 없음...보장안돼..날리지마
5-1 . 인덱스 정리와 업뎃
- set_index() 지정한 열 이름이 인덱스 값이 됨
- 업뎃될거.update(업뎃할거) : 자료 정제된거 업뎃
- reset_index() : 인덱스 리셋해서 깔끔하게 해주잡 그래야 값을 불러오기가 좋지.
- 업뎃된 DF[원본DF.columns] : 원본과 똑같은 열 순서대로 정리해주기.(적용해주기)