2017-03-24 1 views
1

Ich versuche, eine Funktion zu schreiben, um zu beurteilen, ob eine Spalte in einem Pandas DataFrame nur Datumsangaben oder auch Datumsangaben enthält, um zu entscheiden, ob eine Datums- oder Zeitstempelspalte in einer externen Datenbank erstellt werden soll.Hat eine Spalte nur Datumsangaben oder auch Datumsangaben in Pandas?

Alle Daten in einem Datenrahmen werden als vom gleichen Typ gespeichert, aber Datum nur Werte

Gibt es einen effizienten Weg, dies zu tun? Keine Zeit Komponente haben würden Ich würde nicht

Antwort

1

durch jede Spalte in Python-Code in einer Schleife möchte ich überprüfen würde, ob die datetime Spalte auf ihren date component`

die Datenrahmen Betrachten gleich df

df = pd.DataFrame(dict(
     Date=pd.to_datetime(
      ['2017-03-01', 
      '2017-03-01 00:00:00', 
      '2017-03-01 00:00:01', 
      '2017-03-01 10:30:00']))) 

df 

       Date 
0 2017-03-01 00:00:00 
1 2017-03-01 00:00:00 
2 2017-03-01 00:00:01 
3 2017-03-01 10:30:00 

Wir können sehen, dass die ersten 2 Zeilen nicht die Zeitkomponente benötigen, aber die letzten 2 tun. Wir können es mit

df.Date == pd.to_datetime(df.Date.dt.date) 

0  True 
1  True 
2 False 
3 False 
Name: Date, dtype: bool 

So können wir überprüfen, ob die gesamte Spalte die Zeitkomponente mit

(d1.Date == pd.to_datetime(d1.Date.dt.date)).all() 

False 

In diesem Fall muss, False zeigt sollten wir datetime

verwenden
Verwandte Themen