首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pandas Timedelta错误

pandas Timedelta错误
EN

Stack Overflow用户
提问于 2013-03-01 10:08:22
回答 2查看 3.6K关注 0票数 0

在运行pandas文档中的代码示例时,我遇到了错误。

我怀疑这可能与我正在使用的熊猫版本有关,但我还不能证实这一点。

代码语言:javascript
复制
pandas VERSION 0.10.1  
numpy VERSION 1.7.0  
scipy VERSION 0.12.0.dev-14b1e07  

以下示例直接取自pandas文档:

pandas - Time Deltas

这是可行的

代码语言:javascript
复制
from datetime import datetime, timedelta  
from pandas import *  

s  = Series(date_range('2012-1-1', periods=3, freq='D'))  
s  

Out[52]:  
0   2012-01-01 00:00:00  
1   2012-01-02 00:00:00  
2   2012-01-03 00:00:00  

就像这个一样

代码语言:javascript
复制
td = Series([ timedelta(days=i) for i in range(3) ])  
td  
Out[53]:  
0            0:00:00  
1     1 day, 0:00:00  
2    2 days, 0:00:00  

df = DataFrame(dict(A = s, B = td))  
df  
Out[54]:  
                    A                B  
0 2012-01-01 00:00:00          0:00:00  
1 2012-01-02 00:00:00   1 day, 0:00:00  
2 2012-01-03 00:00:00  2 days, 0:00:00  

这似乎与文档中的预期输出一致。

示例代码中的下一行产生一个错误:

代码语言:javascript
复制
df['C'] = df['A'] + df['B']  

..。

代码语言:javascript
复制
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-55-7057e174d79e> in <module>()
----> 1 df['C'] = df['A'] + df['B']

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/series.pyc in wrapper(self, other)
     91             if self.index.equals(other.index):
     92                 name = _maybe_match_name(self, other)
---> 93                 return Series(wrap_results(na_op(lvalues, rvalues)),
     94                               index=self.index, name=name)
     95 

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/series.pyc in na_op(x, y)
     63             if isinstance(y, np.ndarray):
     64                 mask = notnull(x) & notnull(y)
---> 65                 result[mask] = op(x[mask], y[mask])
     66             else:
     67                 mask = notnull(x)

TypeError: ufunc add cannot use operands with types dtype('<M8[ns]') and dtype('O')

数据类型:

代码语言:javascript
复制
df.dtypes

Out[56]: 
A    datetime64[ns]
B            object

类似地,当我做加法/减法时,我得到一个错误:

代码语言:javascript
复制
s - s.max()

<ipython-input-57-8d53e24db927> in <module>()
----> 1 s - s.max()

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/series.pyc in wrapper(self, other)
     78 
     79         if (com.is_datetime64_dtype(self) and
---> 80             com.is_datetime64_dtype(other)):
     81             lvalues = lvalues.view('i8')
     82             rvalues = rvalues.view('i8')

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/common.pyc in is_datetime64_dtype(arr_or_dtype)
   1003         tipo = arr_or_dtype.type
   1004     else:
-> 1005         tipo = arr_or_dtype.dtype.type
   1006     return issubclass(tipo, np.datetime64)
   1007 

AttributeError: 'Timestamp' object has no attribute 'dtype'

为了便于参考,这段代码在概要中。

https://gist.github.com/hernamesbarbara/5061972

感谢您的任何帮助或建议;非常感谢。

-Austin

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-01 10:21:37

如果您查看链接到的页面的标题(浏览器窗口的顶部),您可以看到它是pandas的开发版本:http://pandas.pydata.org/pandas-docs/dev/timeseries.html#time-deltas

所以,今天,这就是版本

代码语言:javascript
复制
'0.11.0.dev-13ae597'

这段代码可以很好地工作。

稳定版的文档如下:

http://pandas.pydata.org/pandas-docs/stable/

您将在浏览器窗口顶部看到的位置

代码语言:javascript
复制
pandas 0.10.1

这就是你的版本。

票数 1
EN

Stack Overflow用户

发布于 2019-08-28 13:56:27

我尝试关闭python的所有实例,然后重新启动所有内容,但仍然不起作用。

然而,这对我来说是有效的。

卸载pandas

代码语言:javascript
复制
conda remove pandas 

代码语言:javascript
复制
pip uninstall pandas 

然后重新安装 it

代码语言:javascript
复制
conda install pandas

代码语言:javascript
复制
pip install pandas
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15149265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档