파이썬 판다스 잘못된 형식의 데이터
잘못된 형식의 데이터를 가진 셀은 데이터를 분석하는 것을 어렵게 하거나 심지어 불가능하게 만들 수 있다.
이를 수정하려면 행을 제거하거나 열의 모든 셀을 동일한 형식으로 변환하는 두 가지 옵션이 있다.
파이썬 판다스 올바른 형식으로 변환
데이터 프레임에는 잘못된 형식의 셀이 두 개 있다. 22행과 26행을 확인하시오. '날짜' 열은 날짜를 나타내는 문자열이어야 한다:
Duration Date Pulse Maxpulse Calories 0 60 '2020/12/01' 110 130 409.1 1 60 '2020/12/02' 117 145 479.0 2 60 '2020/12/03' 103 135 340.0 3 45 '2020/12/04' 109 175 282.4 4 45 '2020/12/05' 117 148 406.0 5 60 '2020/12/06' 102 127 300.0 6 60 '2020/12/07' 110 136 374.0 7 450 '2020/12/08' 104 134 253.3 8 30 '2020/12/09' 109 133 195.1 9 60 '2020/12/10' 98 124 269.0 10 60 '2020/12/11' 103 147 329.3 11 60 '2020/12/12' 100 120 250.7 12 60 '2020/12/12' 100 120 250.7 13 60 '2020/12/13' 106 128 345.3 14 60 '2020/12/14' 104 132 379.3 15 60 '2020/12/15' 98 123 275.0 16 60 '2020/12/16' 98 120 215.2 17 60 '2020/12/17' 100 120 300.0 18 45 '2020/12/18' 90 112 NaN 19 60 '2020/12/19' 103 123 323.0 20 45 '2020/12/20' 97 125 243.0 21 60 '2020/12/21' 108 131 364.2 22 45 NaN 100 119 282.0 23 60 '2020/12/23' 130 101 300.0 24 45 '2020/12/24' 105 132 246.0 25 60 '2020/12/25' 102 126 334.5 26 60 20201226 100 120 250.0 27 60 '2020/12/27' 92 118 241.0 28 60 '2020/12/28' 103 132 NaN 29 60 '2020/12/29' 100 132 280.0 30 60 '2020/12/30' 102 129 380.3 31 60 '2020/12/31' 92 115 243.0 |
날짜' 열에 있는 모든 셀을 날짜로 변환해 보자.
판다스는 이를 위한 to_datetime() 메소드를 사용한다:
날짜로 변환:
import pandas as pd df = pd.read_csv('data.csv') df['Date'] = pd.to_datetime(df['Date']) print("df['Date'] = pd.to_datetime(df['Date'])") print(df.to_string()) |
위의 코드를 실행하면 아래 그림과 같다.
Duration Date Pulse Maxpulse Calories 0 60 '2020/12/01' 110 130 409.1 1 60 '2020/12/02' 117 145 479.0 2 60 '2020/12/03' 103 135 340.0 3 45 '2020/12/04' 109 175 282.4 4 45 '2020/12/05' 117 148 406.0 5 60 '2020/12/06' 102 127 300.0 6 60 '2020/12/07' 110 136 374.0 7 450 '2020/12/08' 104 134 253.3 8 30 '2020/12/09' 109 133 195.1 9 60 '2020/12/10' 98 124 269.0 10 60 '2020/12/11' 103 147 329.3 11 60 '2020/12/12' 100 120 250.7 12 60 '2020/12/12' 100 120 250.7 13 60 '2020/12/13' 106 128 345.3 14 60 '2020/12/14' 104 132 379.3 15 60 '2020/12/15' 98 123 275.0 16 60 '2020/12/16' 98 120 215.2 17 60 '2020/12/17' 100 120 300.0 18 45 '2020/12/18' 90 112 NaN 19 60 '2020/12/19' 103 123 323.0 20 45 '2020/12/20' 97 125 243.0 21 60 '2020/12/21' 108 131 364.2 22 45 NaT 100 119 282.0 23 60 '2020/12/23' 130 101 300.0 24 45 '2020/12/24' 105 132 246.0 25 60 '2020/12/25' 102 126 334.5 26 60 '2020/12/26' 100 120 250.0 27 60 '2020/12/27' 92 118 241.0 28 60 '2020/12/28' 103 132 NaN 29 60 '2020/12/29' 100 132 280.0 30 60 '2020/12/30' 102 129 380.3 31 60 '2020/12/31' 92 115 243.0 |
결과에서 볼 수 있듯이 26행의 날짜는 고정되어 있었지만 22행의 빈 날짜는 NaT 값, 즉 빈 값을 얻었다. 빈 값을 처리하는 한 가지 방법은 단순히 행 전체를 제거하는 것다.
파이썬 판다스 데이터 클리닝 잘못된 형식 - 행 제거 - dropna()
위 예제에서 변환한 결과는 Null 값으로 처리할 수 있는 NaT 값을 얻었고 dropna() 메소드를 사용하여 행을 제거할 수 있다.
날짜 열에서 NULL 값을 가진 행을 제거한다:
import pandas as pd df = pd.read_csv('data.csv') df['Date'] = pd.to_datetime(df['Date']) print("df['Date'] = pd.to_datetime(df['Date'])") df.dropna(subset=['Date'], inplace = True) print("df.dropna(subset=['Date'], inplace = True)") print(df.to_string()) |
위의 코드를 실행하면 아래 그림과 같다.
이번 글에서는 파이썬 판다스 모듈에서 데이터 클리닝할 경우, 잘못된 형식을 처리하는 방법에 대해서 살펴보았다.
파이썬 판다스 데이터 클리닝에서 잘못된 형식에 날짜인 경우 to_datetime() 메소드를 활용하여 오류처리하거나 날짜를 수정할 수 있다. 혹은 잘못된 날짜 형식의 경우 NAT 대신에 행을 제거할 경우 dropna() 메소드를 활용하는 실습을 하였다.
꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.
모두 화이팅입니다.!!!
출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.
'파이썬 > 파이썬기본문법' 카테고리의 다른 글
파이썬 판다스 데이터 클리닝 중복 데이터 (0) | 2024.01.25 |
---|---|
파이썬 판다스 잘못된 데이터 (1) | 2024.01.24 |
파이썬 판다스 빈셀 데이터 클리닝 (1) | 2024.01.22 |
파이썬 판다스 데이터 클리닝(Data Cleaning) (0) | 2024.01.21 |
파이썬 판다스 데이터 분석 (0) | 2024.01.20 |
댓글