Требуется numpy> = 1.7. Это для панд 0.13 (освобождение в ближайшее время). См документы here
In [3]: df = DataFrame(dict(A = Timestamp('20130101'), B = Timestamp('20130101')+ pd.to_timedelta(list(range(5)),unit='D')))
In [4]: df
Out[4]:
A B
0 2013-01-01 00:00:00 2013-01-01 00:00:00
1 2013-01-01 00:00:00 2013-01-02 00:00:00
2 2013-01-01 00:00:00 2013-01-03 00:00:00
3 2013-01-01 00:00:00 2013-01-04 00:00:00
4 2013-01-01 00:00:00 2013-01-05 00:00:00
[5 rows x 2 columns]
In [5]: df.dtypes
Out[5]:
A datetime64[ns]
B datetime64[ns]
dtype: object
In [6]: df['C'] = df['B']-df['A']
In [7]: df
Out[7]:
A B C
0 2013-01-01 00:00:00 2013-01-01 00:00:00 00:00:00
1 2013-01-01 00:00:00 2013-01-02 00:00:00 1 days, 00:00:00
2 2013-01-01 00:00:00 2013-01-03 00:00:00 2 days, 00:00:00
3 2013-01-01 00:00:00 2013-01-04 00:00:00 3 days, 00:00:00
4 2013-01-01 00:00:00 2013-01-05 00:00:00 4 days, 00:00:00
[5 rows x 3 columns]
In [8]: df.dtypes
Out[8]:
A datetime64[ns]
B datetime64[ns]
C timedelta64[ns]
dtype: object
In [9]: df['C'].astype('timedelta64[s]')
Out[9]:
0 0
1 86400
2 172800
3 259200
4 345600
Name: C, dtype: float64
В 0.12 вы можете сделать это
In [1]: df = DataFrame(dict(A = Timestamp('20130101'), B = [Timestamp('20130101')+timedelta(days=i) for i in range(5) ]))
In [2]: df['C'] = df['B']-df['A']
In [3]: Series(df['C'].values/np.timedelta64(1,'s'))
Out[3]:
0 0
1 86400
2 172800
3 259200
4 345600
dtype: float64