pandas timedelta以小时误差为timedelta64

时间:2017-09-08 09:59:25

标签: pandas

我可以在两个时间戳之间花费几小时的时差。 在我的程序t1中,从数据帧中提取t2。

>>> import pandas as pd
>>> t1='2017-08-06 02:00:00+00:00'
>>> t2='2017-08-07 02:00:00+00:00'
>>> t1=pd.Timestamp(t1)
>>> t2=pd.Timestamp(t2)
>>> delta=t2-t1
>>> print delta
1 days 00:00:00
>>> print delta.astype('timedelta64[h]')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Timedelta' object has no attribute 'astype'

请告诉我如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

错误很明显,astype没有方法pd.Timestamp,如果您想要总小时数,则需要拨打.total_seconds并划分:

In[79]:
delta.total_seconds()/3600

Out[79]: 24.0

或使用to_timedelta64将类型转换为具有np.timedelta64方法的astype

In[82]:
delta.to_timedelta64().astype('timedelta64[h]')

Out[82]: numpy.timedelta64(24,'h')

感谢@Bharath,你可以做的第一个案例是:

In[84]:
delta/pd.Timedelta(hours=1)

Out[84]: 24.0