Ich möchte eine Spalte in einem Pandas-Datenrahmen erstellen, die eine ganzzahlige Darstellung der Anzahl der Tage in einer Zeitdelta-Spalte ist. Ist es möglich, 'datetime.days' zu verwenden oder muss ich etwas mehr manuell machen?
Timedelta-Spalte
7 Tage, 23:29:00
ganzzahlige Tagesspalte
7
timedelta.days
?Antworten:
Verwenden Sie das
dt.days
Attribut. Greifen Sie auf dieses Attribut zu über:Auf die gleiche Weise können Sie auch die Attribute
seconds
undmicroseconds
abrufen.quelle
Sie können dies tun, wo
td
sich Ihre Zeitreihen befinden. Die Division wandelt die Nanosekunden-Deltas in Tagesdeltas um, und die Umwandlung in int fällt auf ganze Tage ab.quelle
/
für zwischentd
undnp
?Timedelta Objekte haben nur Lese Instanz Attribute
.days
,.seconds
und.microseconds
.quelle
Wenn die Frage nicht nur "wie man auf eine ganzzahlige Form des Zeitdeltas zugreift?" aber "wie konvertiere ich die timedelta-Spalte im Datenrahmen in ein int?" Die Antwort könnte etwas anders sein. Zusätzlich zum
.dt.days
Accessor benötigen Sie entwederdf.astype
oderpd.to_numeric
Jede dieser Optionen sollte helfen:
oder
quelle
timedelta64[ns]
. Wenn Ihre Daten NaN sind, konvertieren Sie sie zuerst mit der Pandas-to_datetime
Funktion in Datum / Uhrzeit und verwenden Sie dann die zweite Option oben. Weitere Informationen finden Sie unter to_datetime