Pandas - Bereinigen von Daten im falschen Format


Daten im falschen Format

Zellen mit Daten im falschen Format können die Datenanalyse erschweren oder sogar unmöglich machen.

Um das Problem zu beheben, haben Sie zwei Möglichkeiten: Entfernen Sie die Zeilen oder konvertieren Sie alle Zellen in den Spalten in dasselbe Format.


Konvertieren in ein korrektes Format

In unserem Datenrahmen haben wir zwei Zellen mit dem falschen Format. Schauen Sie sich die Zeilen 22 und 26 an, die Spalte „Datum“ sollte eine Zeichenfolge sein, die ein Datum darstellt:

      Duration          Date  Pulse  Maxpulse  Calories
  0         60  '2020/12/01'    110       130     409.1
  1         60  '2020/12/02'    117       145     479.0
  2         60  '2020/12/03'    103       135     340.0
  3         45  '2020/12/04'    109       175     282.4
  4         45  '2020/12/05'    117       148     406.0
  5         60  '2020/12/06'    102       127     300.0
  6         60  '2020/12/07'    110       136     374.0
  7        450  '2020/12/08'    104       134     253.3
  8         30  '2020/12/09'    109       133     195.1
  9         60  '2020/12/10'     98       124     269.0
  10        60  '2020/12/11'    103       147     329.3
  11        60  '2020/12/12'    100       120     250.7
  12        60  '2020/12/12'    100       120     250.7
  13        60  '2020/12/13'    106       128     345.3
  14        60  '2020/12/14'    104       132     379.3
  15        60  '2020/12/15'     98       123     275.0
  16        60  '2020/12/16'     98       120     215.2
  17        60  '2020/12/17'    100       120     300.0
  18        45  '2020/12/18'     90       112       NaN
  19        60  '2020/12/19'    103       123     323.0
  20        45  '2020/12/20'     97       125     243.0
  21        60  '2020/12/21'    108       131     364.2
  22        45           NaN    100       119     282.0
  23        60  '2020/12/23'    130       101     300.0
  24        45  '2020/12/24'    105       132     246.0
  25        60  '2020/12/25'    102       126     334.5
  26        60      20201226    100       120     250.0
  27        60  '2020/12/27'     92       118     241.0
  28        60  '2020/12/28'    103       132       NaN
  29        60  '2020/12/29'    100       132     280.0
  30        60  '2020/12/30'    102       129     380.3
  31        60  '2020/12/31'     92       115     243.0

Versuchen wir, alle Zellen in der Spalte „Datum“ in Datumsangaben umzuwandeln.

Pandas hat dafür eine to_datetime()Methode:

Beispiel

Bis heute umrechnen:

import pandas as pd

df = pd.read_csv('data.csv')

df['Date'] = pd.to_datetime(df['Date'])

print(df.to_string())

Ergebnis:

      Duration          Date  Pulse  Maxpulse  Calories
  0         60  '2020/12/01'    110       130     409.1
  1         60  '2020/12/02'    117       145     479.0
  2         60  '2020/12/03'    103       135     340.0
  3         45  '2020/12/04'    109       175     282.4
  4         45  '2020/12/05'    117       148     406.0
  5         60  '2020/12/06'    102       127     300.0
  6         60  '2020/12/07'    110       136     374.0
  7        450  '2020/12/08'    104       134     253.3
  8         30  '2020/12/09'    109       133     195.1
  9         60  '2020/12/10'     98       124     269.0
  10        60  '2020/12/11'    103       147     329.3
  11        60  '2020/12/12'    100       120     250.7
  12        60  '2020/12/12'    100       120     250.7
  13        60  '2020/12/13'    106       128     345.3
  14        60  '2020/12/14'    104       132     379.3
  15        60  '2020/12/15'     98       123     275.0
  16        60  '2020/12/16'     98       120     215.2
  17        60  '2020/12/17'    100       120     300.0
  18        45  '2020/12/18'     90       112       NaN
  19        60  '2020/12/19'    103       123     323.0
  20        45  '2020/12/20'     97       125     243.0
  21        60  '2020/12/21'    108       131     364.2
  22        45           NaT    100       119     282.0
  23        60  '2020/12/23'    130       101     300.0
  24        45  '2020/12/24'    105       132     246.0
  25        60  '2020/12/25'    102       126     334.5
  26        60  '2020/12/26'    100       120     250.0
  27        60  '2020/12/27'     92       118     241.0
  28        60  '2020/12/28'    103       132       NaN
  29        60  '2020/12/29'    100       132     280.0
  30        60  '2020/12/30'    102       129     380.3
  31        60  '2020/12/31'     92       115     243.0

Wie Sie dem Ergebnis entnehmen können, war das Datum in Zeile 26 fixiert, aber das leere Datum in Zeile 22 erhielt einen NaT-Wert (Not a Time), also einen leeren Wert. Eine Möglichkeit, mit leeren Werten umzugehen, besteht darin, einfach die gesamte Zeile zu entfernen.


w3schools CERTIFIED . 2021

Zertifiziert werden!

Absolvieren Sie die Pandas-Module, machen Sie die Übungen, machen Sie die Prüfung und Sie werden w3schools-zertifiziert!

$10 REGISTRIEREN

Zeilen entfernen

Das Ergebnis der Konvertierung im obigen Beispiel ergab einen NaT-Wert, der als NULL-Wert behandelt werden kann, und wir können die Zeile mithilfe der dropna()Methode entfernen.

Beispiel

Entfernen Sie Zeilen mit einem NULL-Wert in der Spalte "Datum":

df.dropna(subset=['Date'], inplace = True)