2017-02-24 37 views
2

我有大小500的時間戳數組如下:差異年時間戳的陣列與當今

>>>TimeStampArray[0] 
Timestamp('2017-02-20 14:00:19') 

我想找到與今天的日期是數組的每個元素的時間差,並表示該輸出在幾天內。

例如TimeStampArray [0] - today()= 3天

我已經嘗試使用帶有TimeStampArray的pandas datetimeindex,但它始終未能轉換爲格式,然後我可以將timedelta函數應用於。

編輯:

type(TimeStampArray.dtypes) 
<type 'numpy.dtype'> 

頭()給error: 'numpy.ndarray' object has no attribute 'head'

我剛剛打印整個陣列和內容看爲:

'2010-12-21T22:00:10.000000000', '2014-11-02T00:00:17.000000000', 
    '2014-07-14T15:00:11.000000000', '2010-12-31T12:00:18.000000000', 
    '2010-12-20T00:00:33.000000000', '2010-12-20T00:00:33.000000000'], dtype='datetime64[ns]') 
+0

你可以張貼打印的'輸出(TimeStampArray.head());打印(TimeStampArray.dtypes)' – MaxU

回答

1

TimeStampArray似乎是一個與NumPy陣列 - 國際海事組織它更容易與熊貓系列工作:

In [178]: TimeStampArray 
Out[178]: 
array(['2010-12-21T22:00:10.000000000', '2014-11-02T00:00:17.000000000', '2014-07-14T15:00:11.000000000', '2010-12-31T12:00:18.000000000', ' 
2010-12-20T00:00:33.000000000', 
     '2010-12-20T00:00:33.000000000'], dtype='datetime64[ns]') 

In [179]: (pd.datetime.now() - pd.Series(TimeStampArray)).dt.days 
Out[179]: 
0 2256 
1  845 
2  956 
3 2247 
4 2258 
5 2258 
dtype: int64 
+1

我同意熊貓是更好的辦法。 – Zanam

1

我認爲你可以使用absTimedeltaIndex.days

rng = pd.date_range('2015-02-24', periods=10).values 
print (rng) 
['2015-02-24T00:00:00.000000000' '2015-02-25T00:00:00.000000000' 
'2015-02-26T00:00:00.000000000' '2015-02-27T00:00:00.000000000' 
'2015-02-28T00:00:00.000000000' '2015-03-01T00:00:00.000000000' 
'2015-03-02T00:00:00.000000000' '2015-03-03T00:00:00.000000000' 
'2015-03-04T00:00:00.000000000' '2015-03-05T00:00:00.000000000'] 

today = pd.datetime.now() 
print (today) 
2017-02-24 22:09:25.162455 

print (abs(pd.DatetimeIndex(rng) - today).days) 
[731 730 729 728 727 726 725 724 723 722] 
+0

這給出錯誤:TypeError:ufunc減法不能使用類型dtype(' Zanam

+0

請編輯答案。 – jezrael

+0

你可能不需要「圓」。看看MarkU的語法。謝謝。 – Zanam