# 데이터 유형 변환
예제 : emp3.csv 파일을 읽고, 이름과 월급을 출력하는데 이 때 월급을 실수로 출력되게 하기
1 2 3 | import pandas as pd emp = pd.read_csv("c:\\data\\emp3.csv") print( emp[['ename','sal']]) |
먼저 기존의 emp 데이터 프레임의 이름과 월급을 확인해보면, 다음과 같이 정수형인 것을 볼 수 있다.
이것을 이제 실수형으로 바꿔보자.
1 2 3 4 | import pandas as pd emp = pd.read_csv("c:\\data\\emp3.csv") emp['sal']=emp['sal'].apply(float) print( emp[['ename','sal']]) |
.apply()로 emp 데이터 프레임에 'sal' 시리즈에 적용해서 이렇게 데이터 유형을 변경할 수 있다.
즉 emp['sal].apply(float)으로 데이터 유형을 실수로 바꾼 뒤, emp['sal']에 다시 할당한 것
# 결측치 확인하기
결측치(NaN)를 처리하는 판다스 함수
예제 : 이름과 커미션을 출력하기
1 2 3 | import pandas as pd emp=pd.read_csv("c:\\data\\emp3.csv") print(emp[['ename','comm']]) |
일단 보기와 같이 커미션은 결측치가 많이 존재하고 있다.
예제 : 커미션이 결측치인 사원들의 이름과 커미션을 출력하기
1 2 3 | import pandas as pd emp=pd.read_csv("c:\\data\\emp3.csv") print(emp[['ename','comm']][emp['comm'].isnull()]) |
조건절에서 isnull() 함수를 사용하면 된다.
예제 : 커미션이 결측치가 아닌 사원들의 이름과 커미션을 출력하기
1 2 3 | import pandas as pd emp=pd.read_csv("c:\\data\\emp3.csv") print(emp[['ename','comm']][~emp['comm'].isnull()]) |
간단하게 조건절 앞에 '~' 물결 표시만 붙여주면 된다.
오라클에서 not between, not null, not like 처럼 NOT을 붙이는 상황에
판다스에서는 NOT 대신 '~' 해주면 해결 되는 것 같다.
예제 : CSV 파일에 결측치가 있는지 확인하는 방법
emp를 구체화하지 않고, 그대로 isnull()을 돌려버리면 데이터 값마다
결측치가 아니라면 FALSE 결측치라면 TRUE가 한번에 반환된다.
1 2 3 | import pandas as pd emp=pd.read_csv("c:\\data\\emp3.csv") print(emp.isnull()) |
그런데, 지금은 CSV파일이 아주 작지만 데이터가 만약 크다면 이렇게 일일이 TRUE를 찾기 힘들다.
예제 : 컬럼별로 결측치 확인하기
1 2 3 | import pandas as pd emp=pd.read_csv("c:\\data\\emp3.csv") print(emp.isnull().sum()) |
isnull() 해준 뒤 .sum()만 붙여주면
True는 1이기 때문에 결측치 수만큼 숫자가 늘어난다.
그래서 이렇게 한 눈에 결측치가 얼마나 있는지 편리하게 확인할 수 있다.
예제 : (내게는 대용량인) 타이타닉 데이터의 결측치 확인
1 2 3 | import pandas as pd tat=pd.read_csv("c:\\data\\train.csv") print(tat.isnull().sum()) |
'나 취준생 > 파이썬' 카테고리의 다른 글
파이썬 문자열 관련 함수들 (0) | 2020.12.08 |
---|---|
Pandas 파생변수, 오름차순 내림차순 정렬 (0) | 2020.12.07 |
자료형의 특정 조건 값만 추출해내는 함수 (filter) (0) | 2020.12.07 |
오라클 그룹 함수를 Pandas로 (0) | 2020.12.04 |
Pandas 조인, 서브 쿼리, 그룹 함수의 비교 (0) | 2020.12.04 |