クロスフィールド検証

Pythonで学ぶデータクリーニング

Adel Nehme

VP of AI Curriculum, DataCamp

動機

import pandas as pd

flights = pd.read_csv('flights.csv')
flights.head()
  flight_number  economy_class  business_class  first_class  total_passengers
0         DL140            100              60           40               200
1         BA248            130             100           70               300
2        MEA124            100              50           50               200
3        AFR939            140              70           90               300
4        TKA101            130             100           20               250
Pythonで学ぶデータクリーニング

クロスフィールド検証

データ整合性を確認するために、データセット内の複数フィールドを用いる手法

  flight_number  economy_class  business_class  first_class  total_passengers
0         DL140            100       +      60      +    40        =      200
1         BA248            130       +     100      +    70        =      300
2        MEA124            100       +      50      +    50        =      200
3        AFR939            140       +      70      +    90        =      300
4        TKA101            130       +     100      +    20        =      250
sum_classes = flights[['economy_class', 'business_class', 'first_class']].sum(axis = 1)

passenger_equ = sum_classes == flights['total_passengers']
# 乗客合計が不一致の行を抽出・除外 inconsistent_pass = flights[~passenger_equ] consistent_pass = flights[passenger_equ]
Pythonで学ぶデータクリーニング

クロスフィールド検証

users.head()
   user_id  Age   Birthday
0    32985   22 1998-03-02
1    94387   27 1993-12-04
2    34236   42 1978-11-24
3    12551   31 1989-01-03
4    55212   18 2002-07-02
Pythonで学ぶデータクリーニング

クロスフィールド検証

import pandas as pd
import datetime as dt

# 日付型へ変換し、今日の日付を取得
users['Birthday'] = pd.to_datetime(users['Birthday'])

today = dt.date.today()
# Birthday 各行について年差を計算 age_manual = today.year - users['Birthday'].dt.year
# 年齢が一致するかを判定 age_equ = age_manual == users['Age']
# 年齢が不一致の行を抽出・除外 inconsistent_age = users[~age_equ] consistent_age = users[age_equ]
Pythonで学ぶデータクリーニング

不整合を見つけたらどうするか?

Pythonで学ぶデータクリーニング

演習に進みましょう!

Pythonで学ぶデータクリーニング

Preparing Video For Download...