2014-01-07 4 views
4

내 코드는 팬더 V.12를 사용하는 컴퓨터에서 작동하지만 V.13을 사용하는 컴퓨터에서는 작동하지 않습니다. v.13 jenkins-pandas-windows-test-py27-1193입니까? python pandas v.12 v.13 동일한 코드 날짜 시간

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

버그 ... 할 (대신 최대의)이

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