Duplikate zu entfernen ist entscheidend, um korrekte Anzahlen zu erhalten – oft willst du dasselbe Element nicht mehrfach zählen. In Python gelingt das mit dem Modul pandas, das eine Methode namens drop_duplicates bereitstellt.
Schauen wir uns anhand einiger Beispiele an, wie das funktioniert.
Doppelte Namen entfernen
Angenommen, du hast ein DataFrame mit Tierarztbesuchen und die Praxis möchte wissen, wie viele Hunde jeder Rasse die Praxis besucht haben. In deinem Datensatz gibt es aber Hunde wie Max und Stella, die mehrmals beim Tierarzt waren. Du kannst also nicht einfach die Anzahl der Rassen in der Spalte "breed" zählen.
date name breed weight_kg
02018-09-02 Bella Labrador 24.8712019-06-07 Max Labrador 28.3522018-01-17 Stella Chihuahua 1.5132019-10-19 Lucy Chow Chow 24.07..............712018-01-20 Stella Chihuahua 2.83722019-06-07 Max Chow Chow 24.01732018-08-20 Lucy Chow Chow 24.40742019-04-22 Max Labrador 28.54Bereitgestellt von
Um das zu erreichen, entfernst du Zeilen, deren Hundename bereits früher vorkommt – sprich, du nimmst jeden Namen nur einmal aus dem Datensatz.
Das erledigst du mit der Methode drop_duplicates. Sie nimmt das Argument subset, also die Spalte(n), anhand derer Duplikate bestimmt werden – hier wollen wir alle eindeutigen Namen.
date name breed weight_kg
02018-09-02 Bella Labrador 24.8712019-06-07 Max Chow Chow 24.0122019-03-19 Charlie Poodle 24.9532018-01-17 Stella Chihuahua 1.5142019-10-19 Lucy Chow Chow 24.0772019-03-30 Cooper Schnauzer 16.91102019-01-04 Bernie St. Bernard 74.98Bereitgestellt von
Aber was ist, wenn es Hunde mit demselben Namen gibt?
Doppelte Paare entfernen
Dann müssen wir beim Entfernen von Duplikaten mehr als nur name berücksichtigen. Da Max und Max unterschiedlichen Rassen angehören, können wir Zeilen entfernen, in denen das Paar aus Name und Rasse bereits früher im Datensatz vorkam.
unique_dogs = vet_visits.drop_duplicates(subset=["name","breed"])print(unique_dogs)Bereitgestellt von
date name breed weight_kg
02018-09-02 Bella Labrador 24.8712019-03-13 Max Chow Chow 24.1322019-03-19 Charlie Poodle 24.9532018-01-17 Stella Chihuahua 1.5142019-10-19 Lucy Chow Chow 24.0762019-06-07 Max Labrador 28.3572019-03-30 Cooper Schnauzer 16.91102019-01-04 Bernie St. Bernard 74.98Bereitgestellt von
Um Duplikate auf Basis mehrerer Spalten zu entfernen, übergeben wir dem Argument subset eine Liste von Spaltennamen – hier name und breed.
Jetzt sind beide Max enthalten.
Interaktives Beispiel
In dieser Übung erstellst du neue DataFrames mit eindeutigen Werten aus sales. sales ist vorhanden und pandas ist als pd importiert.
Du führst folgende Schritte aus:
Entferne zunächst Zeilen aus sales mit doppelten Paaren aus store und type, speichere das als store_types und gib den Kopf aus.
Entferne dann Zeilen aus sales mit doppelten Paaren aus store und department, speichere das als store_depts und gib den Kopf aus.
Subsette die Zeilen, die Feiertagswochen sind, und entferne doppelte date-Werte. Speichere das als holiday_dates.
Wähle abschließend die Spalte date aus holiday_dates und gib das DataFrame holiday_dates aus.
# Doppelte Kombinationen aus store/type entfernen
store_types = sales.drop_duplicates(subset=["store","type"])print(store_types.head())# Doppelte Kombinationen aus store/department entfernen
store_depts = sales.drop_duplicates(subset=["store","department"])print(store_depts.head())# Zeilen mit Feiertagswochen subsetten und doppelte Daten entfernen
holiday_dates = sales[sales["is_holiday"]].drop_duplicates(subset="date")# Spalte date von holiday_dates ausgebenprint(holiday_dates["date"])Bereitgestellt von
Wenn wir den obigen Code ausführen, erhalten wir folgendes Ergebnis:
store type department date weekly_sales is_holiday temperature_c fuel_price_usd_per_l unemployment
01A12010-02-0524924.50 False 5.7280.6798.1069012A12010-02-0535034.06 False 4.5500.6798.32417984A12010-02-0538724.42 False 6.5330.6868.62326996A12010-02-0525619.00 False 4.6830.6797.259359310B12010-02-0540212.84 False 12.4110.7829.765
store type department date weekly_sales is_holiday temperature_c fuel_price_usd_per_l unemployment
01A12010-02-0524924.50 False 5.7280.6798.106121A22010-02-0550605.27 False 5.7280.6798.106241A32010-02-0513740.12 False 5.7280.6798.106361A42010-02-0539954.04 False 5.7280.6798.106481A52010-02-0532229.38 False 5.7280.6798.1064982010-09-106912011-11-2523152010-02-1267352012-09-0768102010-12-3168152012-02-1068202011-09-09Name: date,dtype: datetime64[ns]Bereitgestellt von
Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Du kannst DataFrames von einem breiten in ein langes Format umwandeln, Zeilen und Spalten stapeln und entstapeln sowie Multi-Index-DataFrames bearbeiten.
Duplikate zu entfernen ist entscheidend, um korrekte Anzahlen zu erhalten – oft willst du dasselbe Element nicht mehrfach zählen. In Python gelingt das mit dem Modul pandas, das eine Methode namens
drop_duplicatesbereitstellt.Schauen wir uns anhand einiger Beispiele an, wie das funktioniert.
Doppelte Namen entfernen
Angenommen, du hast ein DataFrame mit Tierarztbesuchen und die Praxis möchte wissen, wie viele Hunde jeder Rasse die Praxis besucht haben. In deinem Datensatz gibt es aber Hunde wie Max und Stella, die mehrmals beim Tierarzt waren. Du kannst also nicht einfach die Anzahl der Rassen in der Spalte "breed" zählen.
Um das zu erreichen, entfernst du Zeilen, deren Hundename bereits früher vorkommt – sprich, du nimmst jeden Namen nur einmal aus dem Datensatz.
Das erledigst du mit der Methode
drop_duplicates. Sie nimmt das Argumentsubset, also die Spalte(n), anhand derer Duplikate bestimmt werden – hier wollen wir alle eindeutigen Namen.Aber was ist, wenn es Hunde mit demselben Namen gibt?
Doppelte Paare entfernen
Dann müssen wir beim Entfernen von Duplikaten mehr als nur
nameberücksichtigen. DaMaxundMaxunterschiedlichen Rassen angehören, können wir Zeilen entfernen, in denen das Paar aus Name und Rasse bereits früher im Datensatz vorkam.Um Duplikate auf Basis mehrerer Spalten zu entfernen, übergeben wir dem Argument
subseteine Liste von Spaltennamen – hiernameundbreed.Jetzt sind beide Max enthalten.
Interaktives Beispiel
In dieser Übung erstellst du neue DataFrames mit eindeutigen Werten aus
sales.salesist vorhanden undpandasist alspdimportiert.Du führst folgende Schritte aus:
salesmit doppelten Paaren ausstoreundtype, speichere das alsstore_typesund gib den Kopf aus.salesmit doppelten Paaren ausstoreunddepartment, speichere das alsstore_deptsund gib den Kopf aus.date-Werte. Speichere das alsholiday_dates.dateausholiday_datesund gib das DataFrameholiday_datesaus.Wenn wir den obigen Code ausführen, erhalten wir folgendes Ergebnis:
Probiere es selbst aus.
Um mehr über das Zählen und Aggregieren von Daten zu lernen, sieh dir dieses Video aus unserem Kurs Data Manipulation with pandas an.
Dieser Inhalt stammt aus dem DataCamp-Kurs Data Manipulation with pandas von Maggie Matsui und Richie Cotton.