Bild vom Autor | DALLE-3 & Canva
Haben Sie schon einmal mit unübersichtlichen Datensätzen zu tun gehabt? Sie sind eine der größten Hürden in jedem Information-Science-Projekt. Diese Datensätze können Inkonsistenzen, fehlende Werte oder Unregelmäßigkeiten enthalten, die die Analyse erschweren. Die Datenbereinigung ist der wesentliche erste Schritt, der die Grundlage für genaue und zuverlässige Erkenntnisse legt, aber sie ist langwierig und zeitaufwändig.
Keine Angst! Ich möchte Ihnen Pyjanitor vorstellen, eine fantastische Python-Bibliothek, die Ihnen den Tag retten kann. Es ist ein praktisches Python-Paket, das eine einfache Lösung für diese Herausforderungen bei der Datenbereinigung bietet. In diesem Artikel werde ich die Bedeutung von Pyjanitor sowie seine Funktionen und praktische Anwendung erläutern.
Am Ende dieses Artikels haben Sie ein klares Verständnis davon, wie Pyjanitor die Datenbereinigung und ihre Anwendung in alltäglichen datenbezogenen Aufgaben vereinfacht.
Was ist Pyjanitor?
Pyjanitor ist ein erweitertes R-Paket von Python, das auf Pandas aufbaut und Datenbereinigungs- und Vorverarbeitungsaufgaben vereinfacht. Es erweitert seine Funktionalität, indem es eine Vielzahl nützlicher Funktionen bietet, die den Prozess der Bereinigung, Transformation und Vorbereitung von Datensätzen verfeinern. Betrachten Sie es als Improve Ihres Datenbereinigungs-Toolkits. Möchten Sie mehr über Pyjanitor erfahren? Ich auch. Lassen Sie uns beginnen.
Erste Schritte
Als Erstes müssen Sie Pyjanitor installieren. Öffnen Sie Ihr Terminal oder Ihre Eingabeaufforderung und führen Sie den folgenden Befehl aus:
Der nächste Schritt besteht darin, Pyjanitor und Pandas in Ihr Python-Skript zu importieren. Dies kann folgendermaßen erfolgen:
import janitor
import pandas as pd
Jetzt können Sie Pyjanitor für Ihre Datenbereinigungsaufgaben verwenden. Im Folgenden werde ich einige der nützlichsten Funktionen von Pyjanitor erläutern:
1. Spaltennamen bereinigen
Heben Sie die Hand, wenn Sie jemals über inkonsistente Spaltennamen frustriert waren. Ja, ich auch. Mit Pyjanitors clean_names()
Mit dieser Funktion können Sie Ihre Spaltennamen schnell standardisieren und sie mit nur einem einfachen Aufruf einheitlich und konsistent machen. Diese leistungsstarke Funktion ersetzt Leerzeichen durch Unterstriche, konvertiert alle Zeichen in Kleinbuchstaben, entfernt führende und nachfolgende Leerzeichen und ersetzt sogar Punkte durch Unterstriche. Lassen Sie uns dies anhand eines einfachen Beispiels verstehen.
#Create a knowledge body with inconsistent column names
student_df = pd.DataFrame({
'Pupil.ID': (1, 2, 3),
'Pupil Identify': ('Sara', 'Hanna', 'Mathew'),
'Pupil Gender': ('Feminine', 'Feminine', 'Male'),
'Course*': ('Algebra', 'Information Science', 'Geometry'),
'Grade': ('A', 'B', 'C')
})
#Clear the column names
clean_df = student_df.clean_names()
print(clean_df)
Ausgabe:
student_id student_name student_gender course grade
0 1 Sara Feminine Algebra A
1 2 Hanna Feminine Information Science B
2 3 Mathew Male Geometry C
2. Spalten umbenennen
Manchmal verbessert das Umbenennen von Spalten nicht nur unser Verständnis der Daten, sondern auch deren Lesbarkeit und Konsistenz. Dank der rename_column()
Funktion wird diese Aufgabe mühelos. Ein einfaches Beispiel, das die Benutzerfreundlichkeit dieser Funktion zeigt, ist wie folgt:
student_df = pd.DataFrame({
'stu_id': (1, 2),
'stu_name': ('Ryan', 'James'),
})
# Renaming the columns
student_df = student_df.rename_column('stu_id', 'Student_ID')
student_df =student_df.rename_column('stu_name', 'Student_Name')
print(student_df.columns)
Ausgabe:
Index(('Student_ID', 'Student_Name'), dtype="object")
3. Umgang mit fehlenden Werten
Fehlende Werte sind ein echtes Downside bei der Arbeit mit Datensätzen. Glücklicherweise fill_missing()
ist praktisch, um diese Probleme zu beheben. Lassen Sie uns anhand eines praktischen Beispiels untersuchen, wie fehlende Werte mit Pyjanitor behandelt werden. Zuerst erstellen wir einen Dummy-Datenrahmen und füllen ihn mit einigen fehlenden Werten.
# Create a knowledge body with lacking values
employee_df = pd.DataFrame({
'employee_id': (1, 2, 3, 4, 5),
'title': ('Ryan', 'James', 'Alicia'),
'division': ('HR', None, 'Engineering'),
'wage': (60000, 55000, None)
})
Sehen wir uns nun an, wie Pyjanitor beim Ausfüllen dieser fehlenden Werte helfen kann:
# Substitute lacking 'division' with 'Unknown'
# Substitute the lacking 'wage' with the imply of salaries
employee_df = employee_df.fill_missing({
'division': 'Unknown',
'wage': employee_df('wage').imply(),
})
print(employee_df)
Ausgabe:
employee_id title division wage
0 1 Ryan HR 60000.0
1 2 James Unknown 55000.0
2 3 Alicia Engineering 57500.0
In diesem Beispiel die Abteilung des Mitarbeiters ‚James‘ wird ersetzt durch ‚Unbekannt‘und das Gehalt von ‚Alicia‘ wird ersetzt durch den Durchschnitt von „Ryan“ – Die wunderbare Welt des Wahnsinns Und ‚James‘ Gehälter. Sie können verschiedene Strategien zum Umgang mit fehlenden Werten verwenden, z. B. Vorwärtsdurchlauf, Rückwärtsdurchlauf oder Auffüllen mit einem bestimmten Wert.
4. Zeilen filtern und Spalten auswählen
Das Filtern von Zeilen und Spalten ist eine wichtige Aufgabe bei der Datenanalyse. Pyjanitor vereinfacht diesen Prozess, indem es Funktionen bereitstellt, mit denen Sie Spalten auswählen und Zeilen basierend auf bestimmten Bedingungen filtern können. Angenommen, Sie haben einen Datenrahmen mit Studentendatensätzen und möchten Studenten (Zeilen) herausfiltern, deren Noten unter 60 liegen. Sehen wir uns an, wie Pyjanitor uns dabei hilft.
# Create a knowledge body with scholar information
students_df = pd.DataFrame({
'student_id': (1, 2, 3, 4, 5),
'title': ('John', 'Julia', 'Ali', 'Sara', 'Sam'),
'topic': ('Maths', 'Common Science', 'English', 'Historical past''),
'marks': (85, 58, 92, 45, 75),
'grade': ('A', 'C', 'A+', 'D', 'B')
})
# Filter rows the place marks are lower than 60
filtered_students_df = students_df.question('marks >= 60')
print(filtered_students_df)
Ausgabe:
student_id title topic marks grade
0 1 John Math 85 A
2 3 Lucas English 92 A+
4 5 Sophia Math 75 B
Nehmen wir nun an, Sie möchten auch nur bestimmte Spalten ausgeben, z. B. nur den Namen und die ID, und nicht die gesamten Daten. Pyjanitor kann Ihnen dabei auch wie folgt helfen:
# Choose particular columns
selected_columns_df = filtered_students_df.loc(:,('student_id', 'title'))
Ausgabe:
student_id title
0 1 John
2 3 Lucas
4 5 Sophia
5. Verkettungsmethoden
Mit der Methodenverkettungsfunktion von Pyjanitor können Sie mehrere Vorgänge in einer einzigen Zeile ausführen. Diese Funktion ist eine der besten Funktionen. Betrachten wir zur Veranschaulichung einen Datenrahmen, der Daten über Autos enthält:
# Create a knowledge body with pattern automobile information
cars_df =pd.DataFrame ({
'Automobile ID': (101, None, 103, 104, 105),
'Automobile Mannequin': ('Toyota', 'Honda', 'BMW', 'Mercedes', 'Tesla'),
'Value ($)': (25000, 30000, None, 40000, 45000),
'Yr': (2018, 2019, 2017, 2020, None)
})
print("Vehicles Information Earlier than Making use of Technique Chaining:")
print(cars_df)
Ausgabe:
Vehicles Information Earlier than Making use of Technique Chaining:
Automobile ID Automobile Mannequin Value ($) Yr
0 101.0 Toyota 25000.0 2018.0
1 NaN Honda 30000.0 2019.0
2 103.0 BMW NaN 2017.0
3 104.0 Mercedes 40000.0 2020.0
4 105.0 Tesla 45000.0 NaN
Jetzt sehen wir, dass der Datenrahmen fehlende Werte und inkonsistente Spaltennamen enthält. Wir können dies lösen, indem wir Operationen sequenziell ausführen, wie zum Beispiel clean_names()
, rename_column()
Und, dropna()
usw. in mehreren Zeilen. Alternativ können wir diese Methoden miteinander verketten – additionally mehrere Operationen in einer einzigen Zeile ausführen – für einen flüssigeren Workflow und saubereren Code.
# Chain strategies to scrub column names, drop rows with lacking values, choose particular columns, and rename columns
cleaned_cars_df = (
cars_df
.clean_names() # Clear column names
.dropna() # Drop rows with lacking values
.select_columns(('car_id', 'car_model', 'worth')) #Choose columns
.rename_column('worth', 'price_usd') # Rename column
)
print("Vehicles Information After Making use of Technique Chaining:")
print(cleaned_cars_df)
Ausgabe:
Vehicles Information After Making use of Technique Chaining:
car_id car_model price_usd
0 101.0 Toyota 25000
3 104.0 Mercedes 40000
In dieser Pipeline wurden die folgenden Vorgänge ausgeführt:
clean_names()
Funktion bereinigt die Spaltennamen.dropna()
Funktion löscht die Zeilen mit fehlenden Werten.select_columns()
Die Funktion wählt die spezifischen Spalten „car_id“, „car_model“ und „worth“ aus.rename_column()
Die Funktion benennt die Spalte „Preis“ in „Preis_USD“ um.
Einpacken
Zusammenfassend erweist sich Pyjanitor als magische Bibliothek für jeden, der mit Daten arbeitet. Es bietet viel mehr Funktionen als in diesem Artikel besprochen, wie z. B. das Kodieren kategorialer Variablen, das Abrufen von Merkmalen und Beschriftungen, das Identifizieren doppelter Zeilen und vieles mehr. Alle diese erweiterten Funktionen und Methoden können in seinem Dokumentation. Je tiefer Sie in die Funktionen eintauchen, desto mehr werden Sie von der leistungsstarken Funktionalität überrascht sein. Und schließlich: Viel Spaß beim Bearbeiten Ihrer Daten mit Pyjanitor.
Kanwal Mehreen Kanwal ist Ingenieurin für maschinelles Lernen und technische Autorin mit einer großen Leidenschaft für Datenwissenschaft und die Schnittstelle zwischen KI und Medizin. Sie ist Mitautorin des E-Books „Maximizing Productiveness with ChatGPT“. Als Google Era Scholar 2022 für APAC setzt sie sich für Vielfalt und akademische Exzellenz ein. Sie ist außerdem als Teradata Variety in Tech Scholar, Mitacs Globalink Analysis Scholar und Harvard WeCode Scholar anerkannt. Kanwal ist eine leidenschaftliche Verfechterin des Wandels und hat FEMCodes gegründet, um Frauen in MINT-Fächern zu stärken.