2013-11-14 26 views
2

這的確是一個快速:附加在數據幀偏移到datetime64列

我從q將大熊貓遷移,我試圖1個納米添加到每個項目中的日期列數據幀 '間諜'

>>> spy 
<class 'pandas.core.frame.DataFrame'> 
Int64Index: 126 entries, 0 to 125 
Data columns (total 6 columns): 
Date  126 non-null values 
Open  126 non-null values 
High  126 non-null values 
Low  126 non-null values 
Close  126 non-null values 
Volume 126 non-null values 
dtypes: datetime64[ns](1), float64(4), int64(1) 

爲illuatration,我有這個1個納米

ttt=np.datetime64(1,'ns') 

然後我試着做:

[x+ttt for x in spy['Date']] 

我得到了以下錯誤:

Traceback (most recent call last): 
    File "/tmp/py6868jTH", line 9, in <module> 
    [x+ttt for x in spy['Date']] 
TypeError: ufunc add cannot use operands with types dtype('O') and dtype('<M8[ns]') 

誰能ENLIGHT我有什麼錯嗎? ttt和x應該是相同的類型,對吧?

謝謝!

回答

2

您無法添加日期時間。你必須使用timedelta代替:

>>> s = pd.Series(pd.date_range('2013-11-11', periods=3, freq='D')) 
>>> td = np.timedelta64(1,'ns') 
>>> s 
0 2013-11-11 00:00:00 
1 2013-11-12 00:00:00 
2 2013-11-13 00:00:00 
dtype: datetime64[ns] 
>>> s + td 
0 2013-11-11 00:00:00.000000001 
1 2013-11-12 00:00:00.000000001 
2 2013-11-13 00:00:00.000000001 
dtype: datetime64[ns] 
+1

嗨,謝謝,它的工作原理。然而,我仍然很好奇,爲什麼我不能在這裏做列表理解,有什麼不對[間諜['日期']]中的x + td for x? –

相關問題