pandas Timedelta error

Deadly 提交于 2020-01-06 10:14:31

问题


I'm getting errors when running the code samples from the pandas documentation.

I suspect it might be related to the version of pandas I'm using, but I haven't been able to confirm that.

pandas VERSION 0.10.1  
numpy VERSION 1.7.0  
scipy VERSION 0.12.0.dev-14b1e07  

The below examples are taken directly from the pandas documentation here:

pandas - Time Deltas
This works

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  

as does this

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  

This seems to be consistent with the expected output according to the documentation.

The next line in the sample code yields an error:

df['C'] = df['A'] + df['B']  

...

---------------------------------------------------------------------------
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')

Datatypes:

df.dtypes

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

Similarly, I get an error when I do addition/subtraction:

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'

This code is in a gist for easy reference.

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

Thanks for any help or suggestions; it is much appreciated.

-Austin


回答1:


If you look at the title of the page (top of your browser window) you are linking to, you can see that it's the development version of pandas: http://pandas.pydata.org/pandas-docs/dev/timeseries.html#time-deltas

So, today, that's for version

'0.11.0.dev-13ae597'

where this code is working fine.

The docs for the stable version are here:

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

where you will see in at the top of the browser window

pandas 0.10.1

which is your version.




回答2:


I tried closing all the instances of python and restarting everything again and it still didn't work.
However this worked for me.
Uninstall pandas:

conda remove pandas 

or

pip uninstall pandas 

Then re-install it

conda install pandas

or

pip install pandas


来源:https://stackoverflow.com/questions/15149265/pandas-timedelta-error

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!