Einschränkung des Wertebereichs

Datenbereinigung in Python

Adel Nehme

Content Developer @DataCamp

 

 

 

 

 

 

 

Kapitel 2 – Probleme mit Text- und kategorialen Daten

Datenbereinigung in Python

Kategorien und Wertebereichsbeschränkungen

Eine bestimmte Anzahl von Kategorien

Datentyp Beispielwerte Numerische Darstellung
Familienstand unmarried, married 0,1
Einkommensklasse der Haushalte 0-20K, 20-40K, ... 0,1, ..
Kreditstatus default,payed,no_loan 0,1,2

 

Der Familienstand kann nur entweder unmarried oder married sein.

Datenbereinigung in Python

Wie kommt es zu diesen Problemen?

categorical_issues

Datenbereinigung in Python

Wie gehen wir mit diesen Problemen um?

    Kategorien

Datenbereinigung in Python

Ein Beispiel

# Read study data and print it
study_data = pd.read_csv('study.csv')
study_data
      name   birthday blood_type
1     Beth 2019-10-20         B-
2 Ignatius 2020-07-08         A-
3     Paul 2019-08-12         O+
4    Helen 2019-03-17         O-
5 Jennifer 2019-12-17         Z+
6  Kennedy 2020-04-27         A+
7    Keith 2019-04-19        AB+
# Correct possible blood types
categories
  blood_type
1         O-
2         O+
3         A-
4         A+
5         B+
6         B-
7        AB+
8        AB-
Datenbereinigung in Python

Ein Beispiel

# Read study data and print it
study_data = pd.read_csv('study.csv')
study_data
      name   birthday blood_type
1     Beth 2019-10-20         B-
2 Ignatius 2020-07-08         A-
3     Paul 2019-08-12         O+
4    Helen 2019-03-17         O-
5 Jennifer 2019-12-17         Z+  <--
6  Kennedy 2020-04-27         A+
7    Keith 2019-04-19        AB+
# Correct possible blood types
categories
  blood_type
1         O-
2         O+
3         A-
4         A+
5         B+
6         B-
7        AB+
8        AB-
Datenbereinigung in Python

Ein Hinweis zu Verknüpfungen

Datenbereinigung in Python

Ein LINKER ANTI JOIN für Blutgruppen

Datenbereinigung in Python

Ein INNER JOIN nach Blutgruppen

Datenbereinigung in Python

Inkonsistente Kategorien finden

inconsistent_categories = set(study_data['blood_type']).difference(categories['blood_type'])
print(inconsistent_categories)
{'Z+'}
# Get and print rows with inconsistent categories
inconsistent_rows = study_data['blood_type'].isin(inconsistent_categories)

study_data[inconsistent_rows]
      name   birthday blood_type
5 Jennifer 2019-12-17         Z+
Datenbereinigung in Python

Inkonsistente Kategorien löschen

inconsistent_categories = set(study_data['blood_type']).difference(categories['blood_type'])
inconsistent_rows = study_data['blood_type'].isin(inconsistent_categories)
inconsistent_data = study_data[inconsistent_rows]

# Drop inconsistent categories and get consistent data only consistent_data = study_data[~inconsistent_rows]
      name   birthday blood_type
1     Beth 2019-10-20         B-
2 Ignatius 2020-07-08         A-
3     Paul 2019-08-12         O+
4    Helen 2019-03-17         O-
...    ...      ...          ...
Datenbereinigung in Python

Lass uns üben!

Datenbereinigung in Python

Preparing Video For Download...