일관성

Python으로 데이터 정제하기

Adel Nehme

VP of AI Curriculum, DataCamp

이 장에서 학습할 내용

 

 

 

 

 

 

3장 - 고급 데이터 문제

Python으로 데이터 정제하기

데이터 범위 제약

range_examples

Python으로 데이터 정제하기

일관성

Column Unit
Temperature 32°C 89.6°F 와 동일
Weight 70 Kg 11 st. 와 동일
Date 26-11-2019 26, November, 2019 와 동일
Money 100$ 10763.90¥ 와 동일
Python으로 데이터 정제하기

예시

temperatures = pd.read_csv('temperature.csv')
temperatures.head()
       Date  Temperature
0  03.03.19         14.0
1  04.03.19         15.0
2  05.03.19         18.0
3  06.03.19         16.0
4  07.03.19         62.6
Python으로 데이터 정제하기

예시

temperatures = pd.read_csv('temperature.csv')
temperatures.head()
       Date  Temperature
0  03.03.19         14.0
1  04.03.19         15.0
2  05.03.19         18.0
3  06.03.19         16.0
4  07.03.19         62.6   <--
Python으로 데이터 정제하기

예시

# Import matplotlib
import matplotlib.pyplot as plt

# Create scatter plot plt.scatter(x = 'Date', y = 'Temperature', data = temperatures)
# Create title, xlabel and ylabel plt.title('Temperature in Celsius March 2019 - NYC') plt.xlabel('Dates') plt.ylabel('Temperature in Celsius')
# Show plot plt.show()
Python으로 데이터 정제하기

Python으로 데이터 정제하기

Python으로 데이터 정제하기

온도 데이터 처리

$$C = (F - 32) \times \frac{5}{9}$$

 

temp_fah = temperatures.loc[temperatures['Temperature'] > 40, 'Temperature']

temp_cels = (temp_fah - 32) * (5/9)
temperatures.loc[temperatures['Temperature'] > 40, 'Temperature'] = temp_cels
# Assert conversion is correct
assert temperatures['Temperature'].max() < 40
Python으로 데이터 정제하기

날짜 데이터 처리

birthdays.head()
          Birthday First name Last name
0         27/27/19      Rowan     Nunez
1         03-29-19      Brynn      Yang
2  March 3rd, 2019     Sophia    Reilly
3         24-03-19     Deacon    Prince
4         06-03-19   Griffith      Neal
Python으로 데이터 정제하기

날짜 데이터 처리

birthdays.head()

birthdays 데이터셋 출력 표 - 한 행은 월/일/연도 형식, 다른 행은 전체 철자 표기, 마지막 행은 일자를 두 번 반복하는 명백한 오류가 포함됨.

Python으로 데이터 정제하기

Datetime 형식 지정

datetime은 날짜 표현에 유용합니다

Date datetime format
25-12-2019 %d-%m-%Y
December 25th 2019 %c
12-25-2019 %m-%d-%Y
... ...

pandas.to_datetime()

  • 대부분의 형식을 자동 인식
  • 오류이거나 인식 불가한 형식은 실패할 수 있음
Python으로 데이터 정제하기

날짜 데이터 처리

# Converts to datetime - but won't work!
birthdays['Birthday'] = pd.to_datetime(birthdays['Birthday'])
ValueError: month must be in 1..12
# Will work!
birthdays['Birthday'] = pd.to_datetime(birthdays['Birthday'],
                                       # Return NA for rows where conversion failed
                                       errors = 'coerce')
Python으로 데이터 정제하기

날짜 데이터 처리

birthdays.head()
    Birthday First name Last name
0        NaT      Rowan     Nunez
1 2019-03-29      Brynn      Yang
2 2019-03-03     Sophia    Reilly
3 2019-03-24     Deacon    Prince
4 2019-06-03   Griffith      Neal
Python으로 데이터 정제하기

날짜 데이터 처리

birthdays['Birthday'] = birthdays['Birthday'].dt.strftime("%d-%m-%Y")
birthdays.head()
     Birthday First name Last name
0         NaT      Rowan     Nunez
1  29-03-2019      Brynn      Yang
2  03-03-2019     Sophia    Reilly
3  24-03-2019     Deacon    Prince
4  03-06-2019   Griffith      Neal
Python으로 데이터 정제하기

모호한 날짜 데이터 처리

 

2019-03-08 은 8월인가요, 3월인가요?

   

  • NA로 변환 후 적절히 처리
  • 데이터 소스를 이해해 형식 추론
  • DataFrame의 이전/다음 값으로 형식 추론
Python으로 데이터 정제하기

Vamos praticar!

Python으로 데이터 정제하기

Preparing Video For Download...