时间戳数组的年份与今天不同

2024-05-12 13:18:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个500大小的时间戳数组,如下所示:

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

我想找出数组中每个元素与今天日期的时差,并以天表示输出。在

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

我试过使用pandas datetimeindex和timestarray,但它总是无法转换成我可以应用timedelta函数的格式。在

编辑:

^{pr2}$

head()给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]')

Tags: 函数元素编辑pandastoday格式时间数组
2条回答

你的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

我想您可以将abs^{}一起使用:

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]

相关问题 更多 >