Pandas - 잘못된 형식의 데이터 정리


잘못된 형식의 데이터

잘못된 형식의 데이터가 있는 셀은 데이터 분석을 어렵게 만들거나 심지어 불가능하게 만들 수도 있습니다.

이를 수정하려면 행을 제거하거나 열의 모든 셀을 동일한 형식으로 변환하는 두 가지 옵션이 있습니다.


올바른 형식으로 변환

데이터 프레임에는 형식이 잘못된 두 개의 셀이 있습니다. 22행과 26행을 확인하십시오. 'Date' 열은 날짜를 나타내는 문자열이어야 합니다.

      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

'날짜' 열의 모든 셀을 날짜로 변환해 보겠습니다.

Pandas에는 다음과 같은 to_datetime()방법이 있습니다.

예시

날짜로 변환:

import pandas as pd

df = pd.read_csv('data.csv')

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(Not a Time) 값, 즉 빈 값을 얻었습니다. 빈 값을 처리하는 한 가지 방법은 단순히 전체 행을 제거하는 것입니다.


w3schools CERTIFIED . 2021

인증을 받으세요!

Pandas 모듈을 완료하고, 연습을 수행하고, 시험에 응시하면 w3schools 인증을 받게 됩니다!

$10 등록

행 제거

dropna()위의 예에서 변환한 결과 NaT 값이 나왔는데, 이 값은 NULL 값으로 처리할 수 있으며 메서드 를 사용하여 행을 제거할 수 있습니다 .

예시

"날짜" 열에 NULL 값이 있는 행을 제거합니다.

df.dropna(subset=['Date'], inplace = True)