2013-12-13 16 views
6

Próbuję utworzyć kolumnę dataframe nowe pandy z porządkowej dzień od kolumny datetime:Pandy kolumna datetime do porządkowej

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' 

myślę, że jest to podstawowe pytanie, ale ja z trudem czyta dokumenty dla ostatnie 30 minut.

Jak mogę utworzyć porządkową kolumnę czasu dla mojej ramki danych?

Odpowiedz

12

Zastosowanie zasady:

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

Wkrótce 'df [ 'data'] zastosowania (datetime.toordinal)' – Zero

4

można również użyć map.

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

timedata jest zaokrąglana do integer, Na przykład mam '2015-12-08 12: 13: 46.343000' ale jest to zaokrąglone do 735940, jak mogę uzyskać z dziesiętnymi? – nandhos

Powiązane problemy