Data Science

Pandas: Datentypkonvertierung meistern

Spread the love

Pandas ist eine leistungsstarke Python-Bibliothek zur Datenmanipulation und -analyse. Die Datenverwaltung ist entscheidend für eine effiziente Datenverarbeitung. Dieser Artikel untersucht verschiedene Methoden, um Datentypen von Spalten in Ihren Pandas DataFrames effektiv zu ändern.

Inhaltsverzeichnis

1. Konvertierung in numerische Typen mit pd.to_numeric()

Die Funktion pd.to_numeric() ist ideal zum Konvertieren von Spalten in numerische Datentypen (int, float). Sie ist besonders nützlich, wenn Sie es mit Spalten zu tun haben, die Zeichenketten-Darstellungen von Zahlen enthalten, die häufig beim Importieren von Daten auftreten.


import pandas as pd

data = {'col1': ['1', '2', '3', '4', '5'], 'col2': ['A', 'B', 'C', 'D', 'E']}
df = pd.DataFrame(data)

df['col1'] = pd.to_numeric(df['col1'])
print(df.dtypes)

Der Parameter errors steuert die Behandlung von Fehlern:

  • 'coerce': Ungültige Werte werden zu NaN.
  • 'raise': Löst eine Ausnahme für ungültige Werte aus.
  • 'ignore': Ignoriert ungültige Werte.

data = {'col1': ['1', '2', 'a', '4', '5']}
df = pd.DataFrame(data)
df['col1'] = pd.to_numeric(df['col1'], errors='coerce')
print(df)

2. Flexible Typkonvertierung mit astype()

Die Methode astype() bietet einen allgemeinen Ansatz zum Ändern von Datentypen. Sie können in praktisch jeden unterstützten Typ konvertieren (int, float, str, bool, datetime usw.).


data = {'col1': [1, 2, 3, 4, 5], 'col2': [True, False, True, False, True]}
df = pd.DataFrame(data)

df['col1'] = df['col1'].astype(str)
df['col2'] = df['col2'].astype(int)
print(df.dtypes)

Vorsicht: Typkonvertierungen können zu Datenverlust führen (z. B. Abschneiden von Dezimalstellen beim Konvertieren von float in int).

3. Intelligente Typinferenz mit infer_objects()

Die Methode infer_objects() ist nützlich für DataFrames mit gemischten Datentypen in „object“-Spalten. Sie versucht, den am besten geeigneten Typ für jede Spalte zu ermitteln.


data = {'col1': ['1', 2, '3.14', 4], 'col2': ['A', 'B', 'C', 'D']}
df = pd.DataFrame(data)
df = df.infer_objects()
print(df.dtypes)

Hinweis: Inkonsistente Daten können eine erfolgreiche Typinferenz verhindern.

4. Best Practices für die Datentypkonvertierung

Überprüfen Sie Ihre Daten immer vor und nach der Konvertierung, um Änderungen zu überprüfen und unerwartete Ergebnisse zu vermeiden. Verwenden Sie die Methode .info(), um Datentypen und fehlende Werte zu überprüfen. Behandeln Sie potenzielle Fehler mithilfe des Parameters errors in pd.to_numeric() oder durch Vorverarbeitung Ihrer Daten, um problematische Werte zu entfernen oder zu ersetzen.

Schreibe einen Kommentar

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