2014-09-03 9 views
35

Ich möchte eine Spalte in einem Pandas-Datenrahmen erstellen, die eine ganzzahlige Darstellung der Anzahl der Tage in einer Timedelta-Spalte ist. Ist es möglich, 'datetime.days' zu verwenden oder muss ich etwas mehr manuell machen?Python: Konvertieren von timedelta in int in einem Datenframe

Timedelta Spalte

7 Tage 23:29:00

Tag Integer-Spalte

+4

Haben Sie versucht, 'timedelta.days' zu verwenden? – Ffisegydd

Antwort

42

Sie könnten dies tun, wo td Ihre Serie von Zeittastern ist. Die Division wandelt die Nanosekunden-Deltas in Tag-Deltas um, und die Umwandlung in Int fällt auf ganze Tage ab.

import numpy as np 

(td/np.timedelta64(1, 'D')).astype(int) 
+1

Danke! Auch nach 15 weiteren Minuten Suche habe ich das gefunden. http://StackOverflow.com/Questions/18215317/extracting-days-from-a-numpy-timedelta64-value –

29

Verwenden Sie das Attribut dt.days. td ist der Name Ihres Timedelta Series Gesetzt, greifen Sie auf dieses Attribut über:

td.dt.days 
+4

Ich mag diesen Kommentar für die Einfachheit und erfordert nicht den Import einer anderen Bibliothek. – NickBraunagel

1

TimeDelta-Objekte verfügen über schreibgeschützte Instanzattribute .days, .seconds und .microseconds.