2017-09-04 3 views
-2

Ich arbeite an einem Kaggle-Wettbewerb, und es gibt eine Spalte, die ich konvertieren möchte. Die Spalte ist Teil eines Pandas DataFrame und hat das Format YYYY-MM-DD. Hier ist eine kleinere Version der Datenrahmen:Konvertieren von Datum zu Int in Python

row1, row2, row3, date 
5324, 3452, 2345, 2017-01-01 
131, 3416, 314, 2017-02-01 
45146, 14561, 52, 2017-03-01 
2557, 6731, 24, 2019-11-01 

Hier möchte ich alle anderen Spalten halten und die Datumsspalten anstelle zu konvertieren. Außerdem brauche ich die Tage in dem Datum nicht. Daher brauche ich es im Format YYYYMM

+1

Der beste Weg ist, einige echte Daten zu zeigen. –

Antwort

4

Wenn Sie Datum sind bereits eine Zeichenfolge wie diese 2016-04-01 Verwendung dieser Befehl int(''.join(s.split('-')[:-1]))

s = '2016-04-01' 
i = int(''.join(s.split('-')[:-1])) 
print(i) #prints 201604 

Wenn Sie über ein datetime Objekt in die gewünschte Ganzzahl umgewandelt werden versuchen, , es ist wie dieser Dennoch

>>> from datetime import datetime 
>>> d = datetime(2016,4,1) 
>>> d 
datetime.datetime(2016, 4, 1, 0, 0) 
>>> int(d.strftime('%Y%m')) 
201604 

verwenden, um die beste Art und Weise Daten in einer ganzen Zahl zu speichern, verweist als Unix-Zeitstempel aka Epoch