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
データ整合性を確認するために、データセット内の複数フィールドを用いる手法
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]
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
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で学ぶデータクリーニング