2014-01-07 3 views
4

Мой код работает на компьютере с использованием pandas V.12, но не на компьютере, использующем V.13. Это v.13 jenkins-pandas-windows-test-py27-1193? Используя этот кодpython pandas v.12 v.13 тот же код datetime

import pandas as pd 
from datetime import datetime 
d = { 'File' : pd.Series([2., 2.]), 
    'Status' : pd.Series([1., 1.]), 
    'Error' : pd.Series([2., 2.]), 
    'AlertDays' : pd.Series([2., 2.]), 
    'Date' : pd.Series([datetime(2012, 5, 2), datetime(2012, 5, 2)])} 
df=pd.DataFrame(d) 
df['Date']=pd.to_datetime(df['Date']) 
xx=df.groupby('File')['Date'].max() 
xx=pd.DataFrame(xx).reset_index() 
df=pd.merge(xx,df,on=['File','Date'],how='left') 
df['diff'] = df.apply(lambda x: (datetime.now() - x['Date']).days, axis=1) 

я получаю этот выход

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 3431, in apply 

    return self._apply_standard(f, axis, reduce=reduce) 
    File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 3501, in _appl 
y_standard 
    results[i] = func(v) 
    File "<stdin>", line 1, in <lambda> 
TypeError: ("unsupported operand type(s) for -: 'datetime.datetime' and 'float'" 
, u'occurred at index 0') 

ответ

2

Ошибка ... do это (вместо максимальной)

In [23]: df.groupby('File')['Date'].apply(lambda x: x.max()) 
Out[23]: 
File 
2  2012-05-02 00:00:00 
dtype: datetime64[ns] 
+1

https://github.com/pydata/pandas/issues/5869 вопрос для этого – Jeff

+0

Спасибо, теперь я знаю, где искать сообщения об ошибках! –

+1

pls report ..... попытайтесь проверить все .... это проскользнуло через; вы можете попытаться исправить в текущем главном – Jeff

0

Я предполагаю, что это ошибка:

>>> xx 
    File     Date 
0  2 1335916800000000000 

Обойти это можно добавить только после сброса индекса

>>> xx['Date']=pd.to_datetime(xx['Date']) 
Смежные вопросы