2013-12-13 31 views
6

Sto cercando di creare una colonna dataframe nuove Panda con il giorno ordinale di una colonna datetime:Pandas colonna datetime di ordinale

import pandas as pd 
from datetime import datetime 

print df.ix[0:5] 
           date 
file        
gom3_197801.nc 2011-02-16 00:00:00 
gom3_197802.nc 2011-02-16 00:00:00 
gom3_197803.nc 2011-02-15 00:00:00 
gom3_197804.nc 2011-02-17 00:00:00 
gom3_197805.nc 2011-11-14 00:00:00 

df['date'][0].toordinal() 

Out[6]: 
734184 

df['date'].toordinal() 

--------------------------------------------------------------------------- 
AttributeError       Traceback (most recent call last) 
<ipython-input-7-dbfd5e8b60f0> in <module>() 
----> 1 df['date'].toordinal() 

AttributeError: 'Series' object has no attribute 'toordinal' 

Credo che questa è una domanda semplice, ma ho faticato a leggere documenti per ultimi 30 minuti.

Come posso creare una colonna temporale ordinale per il mio dataframe?

risposta

12

uso Applicare:

df['date'].apply(lambda x: x.toordinal()) 
+0

Poco, '[ 'data'] df applicare (datetime.toordinal)' – Zero

4

è anche possibile usare map:.

import datetime as dt 
df['date'].map(dt.datetime.toordinal) 
+0

La timedata è arrotondato in un intero, ad esempio, ho "2015-12-08 12: 13: 46.343000' ma questo è arrotondato a 735940, come posso ottenere con i decimali? – nandhos

Problemi correlati