Reinigungsdaten müssen nicht kompliziert sein. Mastering Python Einzeiler zur Datenreinigung können Ihren Workflow drastisch beschleunigen und Ihren Code sauber halten. Dieser Weblog zeigt die nützlichsten Python-Einzeiler für die Datenreinigung und hilft Ihnen dabei, fehlende Werte, Duplikate, Formatierungsprobleme und vieles mehr in einer Codezeile umzugehen. Wir werden Pandas-One-Liner für Datenreinigungsbeispiele untersuchen, die sowohl für Anfänger als auch für Profis geeignet sind. Sie werden auch essentielle Bibliotheken zur Verringerung von Python-Daten entdecken, die die Vorverarbeitung effizient und intuitiv machen. Bereit, Ihre Daten intelligenter und nicht härter zu reinigen? Tauchen wir in kompakte und mächtige Einzeiler ein!

Python One Liners Datenreinigung

Warum ist die Datenreinigung wichtig?

Bevor Sie in den Reinigungsprozess eintauchen, ist es wichtig zu verstehen, warum Daten Reinigung ist der Schlüssel zu genauer Analysen und maschinellem Lernen. Rohdatensätze sind oft unordentlich, mit fehlenden Werten, Duplikaten und inkonsistenten Formaten, die die Ergebnisse verzerren können. Die ordnungsgemäße Datenreinigung gewährleistet eine zuverlässige Grundlage für die Analyse und verbessert die Leistung der Algorithmus und Erkenntnisse.

Die Einzelliner werden die adressiven Datenprobleme mit minimalem Code untersuchen, wodurch die Vorbereitung der Daten schneller und effizienter wird. Schauen wir uns nun die Schritte an, die Sie ausführen können, um Ihren Datensatz zu reinigen und diese mühelos in eine saubere, analysebereite Kind umzuwandeln.

Ein-Liner-Lösungen für die Datenreinigung

1. Handhabung fehlender Daten mit Dropna ()

Datensätze in der Praxis sind selten perfekt. Eines der häufigsten Probleme, mit denen Sie konfrontiert sind, sind die fehlenden Werte, unabhängig davon, ob sie aufgrund von Fehlern in der Datenerfassung, im Zusammenführen von Datensätzen oder bei der manuellen Eingabe fehlenden. Glücklicherweise bietet Pandas eine einfache, aber leistungsstarke Methode, um dies zu bewältigen: Dropna ().

Aber Dropna () kann mit mehreren Parametern verwendet werden. Lassen Sie uns untersuchen, wie man das Beste daraus macht.

  1. Achse

Gibt an, ob Sie Zeilen oder Spalten fallen lassen sollen:

  • Achse = 0: Drop -Zeilen (Customary)
  • Achse = 1: Dropsäulen

Code:

df.dropna(axis=0)  # Drops rows
df.dropna(axis=1)  # Drops columns
  1. Wie

Definiert den Zustand, der abfällt:

  • Wie = ‚Any‘: Drop, wenn ein Wert fehlt (Customary)
  • Wie = ‚All‘: Nur fallen wenn alle Werte fehlen

Code:

df.dropna(how='any')   # Drop if a minimum of one NaN

df.dropna(how='all')   # Drop provided that all values are NaN
  1. dreschen

Gibt die minimale Anzahl von Nicht-NAN-Werten an, die erforderlich sind, um die Zeile/Spalte zu halten.

Code:

df.dropna(thresh=3)  # Hold rows with a minimum of 3 non-NaN values

HINWEIS: Sie können nicht zusammen verwenden, wie und Drise zusammen.

  1. Teilmenge

Wenden Sie den Zustand nur auf bestimmte Spalten (oder Zeilen an, wenn Achse = 1).

Code:

df.dropna(subset=('col1', 'col2'))  # Drop rows if NaN in col1 or col2#import csv

2. Handhabung fehlender Daten mit fillna ()

Anstatt fehlende Daten fallen zu lassen, können Sie die Lücken mit der Pandas ‚fillna () -Methode ausfüllen. Dies ist besonders nützlich, wenn Sie Werte unterstellen möchten, anstatt Daten zu verlieren.

Lassen Sie uns untersuchen, wie fillna () mit unterschiedlichen Parametern verwendet wird.

  1. Teilmenge

Gibt einen Skalar-, Wörterbuch-, Serien- oder berechneten Wert wie Mittelwert, Median oder Modus an, um fehlende Daten auszufüllen.

Code:

df.fillna(0)  # Fill all NaNs with 0

df.fillna({'col1': 0, 'col2': 99})  # Fill col1 with 0, col2 with 99

# Fill with imply, median, or mode of a column

df('col1').fillna(df('col1').imply(), inplace=True)

df('col2').fillna(df('col2').median(), inplace=True)

df('col3').fillna(df('col3').mode()(0), inplace=True)  # Mode returns a Sequence
  1. Verfahren

Wird verwendet, um Nicht-Null-Werte vorwärts oder rückwärts zu verbreiten:

  • ‚ffill‘ oder ‚pad‘: Vorwärtsfüllung
  • ‚BFILL‘ oder ‚Backfülle‘: Rückwärtsfüllung

Code:

df.fillna(methodology='ffill')  # Fill ahead

df.fillna(methodology='bfill')  # Fill backward
  1. Achse

Wählen Sie die Richtung zu füllen:

  • Axis = 0: Down (Zeilenunternehmen, Customary)
  • Achse = 1: Füllen

Code:

df.fillna(methodology='ffill', axis=0)  # Fill down

df.fillna(methodology='bfill', axis=1)  # Fill throughout
  1. Restrict

Maximale Anzahl von NANs, um eine Vorwärts-/Rückwärtsfüllung auszufüllen.

Code:

df.fillna(methodology='ffill', restrict=1)  # Fill at most 1 NaN in a row/column#import csv

3.. Entfernen von doppelten Werten mit Drop_duplicates ()

Entfernen Sie mühelos doppelte Zeilen aus Ihrem Datensatz mit der Funktion Drop_duplicates () und stellen Sie sicher, dass Ihre Daten sauber und einzigartig mit nur einer Codezeile sind.

Lassen Sie uns untersuchen, wie drop_ducates mit verschiedenen Parametern verwendet werden

  1. Teilmenge

Gibt bestimmte Spalten an, um nach Duplikaten zu suchen.

  • Customary: Überprüft alle Spalten
  • Verwenden Sie eine einzelne Spalte oder eine Liste von Spalten

Code:

df.drop_duplicates(subset="col1")         # Verify duplicates solely in 'col1'

df.drop_duplicates(subset=('col1', 'col2'))  # Verify primarily based on a number of columns
  1. halten

Bestimmt, welches dupliziert werden soll:

  • ‚First‘ (Customary): Behalten Sie das erste Ereignis auf
  • „Final“: Halten Sie das letzte Ereignis
  • FALSE: Lassen Sie alle Duplikate fallen

Code:

df.drop_duplicates(maintain='first')  # Hold first duplicate

df.drop_duplicates(maintain='final')   # Hold final duplicate

df.drop_duplicates(maintain=False)    # Drop all duplicates

4. Ersetzen spezifischer Werte durch Ersatz ()

Sie können Ersatz () verwenden, um bestimmte Werte in einem Datenrahmen oder einer Reihe zu ersetzen.

Code:

# Change a single worth

df.change(0, np.nan)

# Change a number of values

df.change((0, -1), np.nan)

# Change with dictionary

df.change({'A': {'previous': 'new'}, 'B': {1: 100}})

# Change in-place

df.change('lacking', np.nan, inplace=True)#import csv

5. Datentypen mit Asttype () ändern ()

Das Ändern des Datentyps einer Spalte trägt dazu bei, die ordnungsgemäße Vorgänge und die Speichereffizienz zu gewährleisten.

Code:

df('Age') = df('Age').astype(int)         # Convert to integer

df('Worth') = df('Worth').astype(float)   # Convert to drift

df('Date') = pd.to_datetime(df('Date'))   # Convert to datetime

6. Whitespace von Saiten mit Str.strip () trimmen ()

In Datensätzen können unerwünschte führende oder nachverfolgende Räume in Stringwerten zu Problemen mit Sortierung, Vergleich oder Gruppierung führen. Die Str.strip () -Methode entfernt diese Räume effizient.

Code:

df('col').str.lstrip()   # Removes main areas

df('col').str.rstrip()   # Removes trailing areas

df('col').str.strip()    # Removes each main & trailing

7. Reinigen und Extrahieren von Spaltenwerten

Sie können Spaltenwerte reinigen, indem Sie unerwünschte Zeichen entfernen oder bestimmte Muster mit regulären Ausdrücken extrahieren.

Code:

 # Take away punctuation

df('col') = df('col').str.change(r'(^ws)', '', regex=True) 

# Extract the username half earlier than '@' in an electronic mail deal with

df('email_user') = df('electronic mail').str.extract(r'(^(^@)+)')

# Extract the 4-digit yr from a date string

df('yr') = df('date').str.extract(r'(d{4})')

# Extract the primary hashtag from a tweet

df('hashtag') = df('tweet').str.extract(r'#(w+)')

# Extract telephone numbers within the format 123-456-7890

df('telephone') = df('contact').str.extract(r'(d{3}-d{3}-d{4})')

8. Mapping und Ersetzen von Werten

Sie können bestimmte Werte in einer Spalte zuordnen oder ersetzen, um Ihre Daten zu standardisieren oder zu transformieren.

Code:

df('Gender') = df('Gender').map({'M': 'Male', 'F': 'Feminine'})

df('Score') = df('Score').map({1: 'Dangerous', 2: 'Okay', 3: 'Good'})

9. Umgang mit Ausreißer

Ausreißer können die statistische Analyse und die Modellleistung verzerren. Hier sind gängige Techniken, um sie umzugehen:

  1. Z-Rating-Methode

Code:

# Hold solely numeric columns, take away rows the place any z-score > 3

df = df((np.abs(stats.zscore(df.select_dtypes(embody=(np.quantity)))) < 3).all(axis=1))
  1. Ausschnitt ausgestattet (auf einen Bereich beschränken)

Code:

df('col').clip(decrease=df('col').quantile(0.05),higher=df('col').quantile(0.95))

10. Wenden Sie eine Funktion mit Lambda an

Lambda -Funktionen werden mit Apply () verwendet, um Daten in der Spalte schnell zu transformieren oder zu manipulieren. Die Lambda -Funktion fungiert als Transformation, während apply () sie in der gesamten Spalte anwendet.

Code:

df('col') = df('col').apply(lambda x: x.strip().decrease())   # Removes additional areas and converts textual content to lowercase

Problemanweisung

Nachdem Sie diese Python-Einzeiler erfahren haben, schauen wir uns die Problemaussage an und versuchen, sie zu lösen. Sie erhalten einen Kundendatensatz von einer On-line -Einzelhandelsplattform. Die Daten haben Probleme wie:

  • Fehlende Werte in Spalten wie E -Mail, Alter, Tweet und Telefon.
  • Doppelte Einträge (z. B. denselben Namen und E -Mail).
  • Inkonsistente Formatierung (z. B. Whitespace im Namen, „fehlt“ als Zeichenfolge).
  • Datentypprobleme (z. B. Join_Date mit ungültigen Werten).
  • Ausreißer in Alter und Kauf.
  • Textdaten, die Reinigung und Extraktion mit REGEX erfordern (z. B. Hashtags aus Tweet, Benutzernamen aus E -Mails).

Ihre Aufgabe ist es, zu demonstrieren, wie Sie diesen Datensatz reinigen.

Lösung

Für die vollständige Lösung finden Sie darauf Google Colab Pocket book. Es führt Sie durch jeden Schritt, um den Datensatz mithilfe von Python und Pandas effektiv zu reinigen.

Befolgen Sie die folgenden Anweisungen, um Ihren Datensatz zu reinigen

  1. Drop Zeilen, bei denen alle Werte fehlen
df.dropna(how='all', inplace=True)
  1. Standardisieren
df.change(('lacking', 'not accessible', 'NaN'), np.nan, inplace=True)
  1. Füllen Sie fehlende Werte
df('Age') = df('Age').fillna(df('Age').median())

df('Electronic mail') = df('Electronic mail').fillna('(electronic mail protected)')

df('Gender') = df('Gender').fillna(df('Gender').mode()(0))

df('Purchase_Amount') = df('Purchase_Amount').fillna(df('Purchase_Amount').median())

df('Join_Date') = df('Join_Date').fillna(methodology='ffill')

df('Tweet') = df('Tweet').fillna('No tweet')

df('Cellphone') = df('Cellphone').fillna('000-000-0000')
  1. Duplikate entfernen
df.drop_duplicates(inplace=True)
  1. Streifen Sie Weißespaien und standardisieren Sie Textfelder
df('Identify') = df('Identify').apply(lambda x: x.strip().decrease() if isinstance(x, str) else x)

df('Suggestions') = df('Suggestions').str.change(r'(^ws)', '', regex=True)
  1. Datentypen konvertieren
df('Age') = df('Age').astype(int)

df('Purchase_Amount') = df('Purchase_Amount').astype(float)

df('Join_Date') = pd.to_datetime(df('Join_Date'), errors="coerce")
  1. Beheben Sie ungültige Werte
df = df(df('Age').between(10, 100))  # sensible age

df = df(df('Purchase_Amount') > 0)   # take away unfavorable or zero purchases
  1. Ausreißerentfernung mit Z-Rating
numeric_cols = df(('Age', 'Purchase_Amount'))

z_scores = np.abs(stats.zscore(numeric_cols))

df = df((z_scores < 3).all(axis=1))
  1. Regex -Extraktion
df('Email_Username') = df('Electronic mail').str.extract(r'^((^@)+)')

df('Join_Year') = df('Join_Date').astype(str).str.extract(r'(d{4})')

df('Formatted_Phone') = df('Cellphone').str.extract(r'(d{3}-d{3}-d{4})')
  1. Endgültige Reinigung von „Identify“
df('Identify') = df('Identify').apply(lambda x: x if isinstance(x, str) else 'unknown')

Datensatz vor der Reinigung

Python One Liners Datenreinigung

Datensatz nach der Reinigung

Python One Liners Datenreinigung

Lesen Sie auch: Datenreinigung: So reinigen Sie Daten mit Python!

Abschluss

Reinigungsdaten sind ein entscheidender Schritt bei jeder Datenanalyse oder bei maschinellem Lernprojekt. Indem Sie diese leistungsstarken Python-Einzeiler zur Datenreinigung beherrschen, können Sie den Workflow Ihrer Datenvorverarbeitung optimieren und sicherstellen, dass Ihre Daten genau, konsistent und analysiert sind. Mit diesen Einzeilern können Sie Ihre Daten effizient reinigen, ohne einen langen Code zu schreiben. Durch die Nutzung der Leistung von Pandas und regelmäßigen Ausdrücken können Sie Ihren Code sauber, präzise und leicht zu warten halten. Egal, ob Sie ein Anfänger oder ein Profi sind, diese Methoden helfen Ihnen dabei, Ihre Daten intelligenter und schneller zu reinigen.

Häufig gestellte Fragen

Was ist die Datenreinigung und warum ist es wichtig?

Die Datenreinigung ist der Prozess der Identifizierung und Korrektur oder Entfernung von Fehlern, Inkonsistenzen und Ungenauigkeiten in der Daten, um die Qualität zu gewährleisten. Es ist wichtig, weil saubere Daten zu genauerer Analyse, besserer Modellleistung und zuverlässigen Erkenntnissen führen.

Was ist der Unterschied zwischen Dropna () und fillna ()?

Dropna () entfernt Zeilen oder Spalten mit fehlenden Werten.
fillna () füllt fehlende Werte mit einem angegebenen Wert wie dem Mittelwert, dem Median oder einer vordefinierten Konstante, um die Größe und Struktur des Datensatzes beizubehalten.

Wie kann ich Duplikate aus meinem Datensatz entfernen?

Sie können die Funktion Drop_duplicates () verwenden, um doppelte Zeilen basierend auf bestimmten Spalten oder dem gesamten Datensatz zu entfernen. Sie können auch angeben, ob Sie das erste oder letzte Vorkommen beibehalten oder alle Duplikate fallen lassen sollen.

Wie gehe ich in meinen Daten aus.

Ausreißer können mithilfe statistischer Methoden wie dem Z-Rating behandelt werden, um excessive Werte zu entfernen oder durch Ausschneiden (Capping) -Werte in einen angegebenen Bereich mit der Funktion clip ().

Wie kann ich Saitenspalten reinigen, indem ich zusätzliche Räume oder Zeichensetzung entfernen?

Sie können die Funktion von Str.strip () verwenden, um führende und nachverfolgende Räume von Saiten und die Funktion von Str.Change () mit einem regelmäßigen Ausdruck zu entfernen, um die Interpunktion zu entfernen.

Was soll ich tun, wenn eine Spalte falsche Datentypen hat?

Sie können die Asttype () -Methode verwenden, um eine Spalte in den richtigen Datentyp zu konvertieren, z. B. Ganzzahlen oder Floats, oder pd.to_datetime () für Datumsspalten verwenden.

Wie gehe ich fehlende Werte in meinem Datensatz um?

Sie können fehlende Werte verarbeiten, indem Sie entweder Zeilen oder Spalten mit Dropna () oder mit einem geeigneten Wert (wie dem Mittelwert oder dem Median) mit fillna () entfernen oder mit einem geeigneten Wert füllen. Die Methode hängt vom Kontext Ihres Datensatzes und der Bedeutung der Aufbewahrung von Daten ab.

Datenwissenschaftler | AWS Licensed Options Architect | KI & ML Innovator

Als Datenwissenschaftler bei Analytics Vidhya spezialisiere ich mich auf maschinelles Lernen, Deep Studying und KI-gesteuerte Lösungen, die NLP-, Laptop-Imaginative and prescient- und Cloud-Technologien nutzen, um skalierbare Anwendungen zu erstellen.

Mit einem B.Tech in Informatik (Knowledge Science) aus VIT- und Zertifizierungen wie AWS Licensed Options Architect und TensorFlow umfasst meine Arbeit generative KI, Anomalie -Erkennung, falsche Nachrichtenerkennung und Emotionserkennung. Ich bemühe mich, intelligente Systeme zu entwickeln, die die Zukunft der KI prägen.

Melden Sie sich an, um weiter zu lesen und Experten-Kuratinhalte zu genießen.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert