seguito nello spirito di this answer, ho tentato il seguente per convertire una colonna dataframe di datetimes ad una colonna di secondi dall'epoca.Python Pandas Serie di datetimes per secondi dall'epoca
df['date'] = (df['date']+datetime.timedelta(hours=2)-datetime.datetime(1970,1,1))
df['date'].map(lambda td:td.total_seconds())
Il secondo comando causa il seguente errore che non capisco. Qualche idea su cosa potrebbe succedere qui? Ho sostituito la mappa con la domanda e questo non ha aiutato a fare la differenza.
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-99-7123e823f995> in <module>()
----> 1 df['date'].map(lambda td:td.total_seconds())
/Users/cpd/.virtualenvs/py27-ipython+pandas/lib/python2.7/site-packages/pandas-0.12.0_937_gb55c790-py2.7-macosx-10.8-x86_64.egg/pandas/core/series.pyc in map(self, arg, na_action)
1932 return self._constructor(new_values, index=self.index).__finalize__(self)
1933 else:
-> 1934 mapped = map_f(values, arg)
1935 return self._constructor(mapped, index=self.index).__finalize__(self)
1936
/Users/cpd/.virtualenvs/py27-ipython+pandas/lib/python2.7/site-packages/pandas-0.12.0_937_gb55c790-py2.7-macosx-10.8-x86_64.egg/pandas/lib.so in pandas.lib.map_infer (pandas/lib.c:43628)()
<ipython-input-99-7123e823f995> in <lambda>(td)
----> 1 df['date'].map(lambda td:td.total_seconds())
AttributeError: 'float' object has no attribute 'total_seconds'
Sembra che la colonna "data" potrebbe non essere un datetime64 in primo luogo? – Boud
La colonna contiene valori mancanti? I valori mancanti solitamente causano il cast dei cast serie, causando stranezze quando si tenta di interpretarli come dati. – Abe
@Abe In effetti avevi ragione. Risulta che ci sono alcuni dati mancanti in alcuni dei record. Non è quello che mi aspettavo ... Ack. – Chris