2014-09-03 12 views
35

Vorrei creare una colonna in un frame di dati panda che sia una rappresentazione integer del numero di giorni in una colonna timedelta. È possibile utilizzare 'datetime.days' o devo fare qualcosa di più manuale?Python: Converti timedelta in int in un dataframe

colonna timedelta

sette giorni, 23:29:00

giorno colonna integer

+4

Hai provato a utilizzare 'timedelta.days'? – Ffisegydd

risposta

42

Puoi farlo, dove td è la tua serie di timedeltas. La divisione converte i delta in nanosecondi in delta giorno e la conversione in int cade a giorni interi.

import numpy as np 

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

Grazie! Inoltre dopo altri 15 minuti di ricerca l'ho trovato. http://stackoverflow.com/questions/18215317/extracting-days-from-a-numpy-timedelta64-value –

29

Utilizzare l'attributo dt.days. Supponendo td è il nome della vostra serie timedelta, accedere a questo attributo tramite:

td.dt.days 
+4

Mi piace questo commento per la semplicità e non richiede l'importazione di un'altra libreria. – NickBraunagel

1

Gli oggetti Timedelta hanno attributi di istanza di sola lettura .days, .seconds e .microseconds.