2017-02-24 38 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