2013-03-01 4 views
0

Я получаю ошибки при запуске образцов кода из документации pandas.pandas Timedelta error

Я подозреваю, что это может быть связано с версией панд, которые я использую, но я не смог это подтвердить.

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

Приведенные ниже примеры взяты непосредственно из панд документации здесь:

pandas - Time Deltas
Это работает

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 

, как это делает

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 

Это, кажется, соответствует с ожиданием в соответствии с документацией.

Следующая строка в примере кода дает ошибку:

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 

Кроме того, я получаю сообщение об ошибке, когда я сложение/вычитание:

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

ответ

1

Если вы посмотрите на заголовок страницы (верхней части окна браузера) вы ссылаетесь, вы можете увидеть, что это разрабатываемая версия панд: http://pandas.pydata.org/pandas-docs/dev/timeseries.html#time-deltas

Итак, сегодня, то есть для версии

'0.11.0.dev-13ae597' 

, где этот код работает нормально.

Документов для стабильной версии здесь:

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

, где вы будете видеть в в верхней части окна браузера

pandas 0.10.1 

который является вашей версией.

+0

Doh! Спасибо за быстрый ответ! – hernamesbarbara