2015-09-24 60 views
1

我有一個數據幀,看起來像這樣減去時間戳列給我的TypeError

     dt1    dt2 
0 2011-09-12 09:57:03.839546 2011-09-12 09:51:29.332474 
1 2011-09-12 09:57:03.841132 2011-09-12 09:55:29.332774 
2 2011-09-12 10:57:28.581049 2011-09-12 10:55:29.332774 
3 2011-09-12 10:57:28.581049 2011-09-12 10:55:29.332774 
4 2011-09-12 10:57:28.582636 2011-09-12 10:55:29.332774 

類條目是pandas.tslib.Timestamp。當我做

df['dt1'][:]-df['dt2'][:] 

我很好,但是這

df['dt1']-df['dt2'] 

失敗,出現以下錯誤

TypeError: Argument 'values' has incorrect type (expected numpy.ndarray, got Series) 

爲什麼會這樣,我怎麼能解決這個問題?

+0

這是預期的行爲。後來一個是算術運算。 –

+0

那麼,我怎樣才能減去時間戳列呢? –

+0

我的答案是否符合您的需求? – Romain

回答

4

轉換爲datetime64可以解決它。

df['dt1'] = pd.to_datetime(df['dt1']) 
df['dt2'] = pd.to_datetime(df['dt2']) 

df['dt1']-df['dt2'] 

0 00:05:34.507072 
1 00:01:34.508358 
2 00:01:59.248275 
3 00:01:59.248275 
4 00:01:59.249862 
+0

但是爲什麼我得到0天呢?爲什麼它不顯示關於差異的更詳細信息? –

+1

由於您已經寫過'df ['dt1'] - df ['dt1']'',所以在您的問題中存在錯誤。我修改了計算'dt1'和'dt2'之間差異的答案。 – Romain