我正在尝试运行一个Ipython笔记本,除了它给我一个“astype timedelta64”错误

时间:2016-06-01 17:51:32

标签: python numpy pandas ipython gis

我对大数据很感兴趣,最近我发现了这个Ipython笔记本:https://github.com/lmart999/GIS/blob/master/SF_GIS_Crime.ipynb

立即下载并尝试运行它。前十几个细胞正常运行,甚至是matplotlib图表。

直到我进入这些界限:

\token

这给出了一条非常长的错误消息:

#  Lets use real dates for plotting
days_from_start=pd.Series(t_all.index*30).astype('timedelta64[D]')
dates_for_plot=date.min()+days_from_start
time_labels=dates_for_plot.map(lambda x: str(x.year)+'-'+str(x.month))

[--- 50行错误信息---]

--------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-27-4a793ff06024> in <module>()
      1 # Lets use real dates for plotting
----> 2 days_from_start=pd.Series(t_all.index*30).astype('timedelta64[D]')
      3 dates_for_plot=date.min()+days_from_start
      4 time_labels=dates_for_plot.map(lambda x: str(x.year)+'-'+str(x.month))

如果你需要我发布整个消息我会,但我认为核心问题可能与numpy和pandas版本之间的冲突有关。

有经验的人可以告诉我应该如何改变这个吗?我正在运行Ubntu 14.04。

1 个答案:

答案 0 :(得分:1)

问题在于Numpy不再支持从浮点数创建timedelta64个对象(可能是在发布笔记本时可能的)。

在转换为timedelta64之前,您需要首先将放大的索引转换为整数。

days_from_start=pd.Series(t_all.index*30).astype('int').astype('timedelta64[D]')