我可以在两个时间戳之间花费几小时的时差。 在我的程序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'
请告诉我如何解决这个问题。
答案 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