一尘不染

从numpy.timedelta64值中提取天数

python

我正在使用pandas / python,我有两个日期时间序列s1和s2,它们是使用包含日期/时间的df字段上的“ to_datetime”函数生成的。

当我从s2减去s1

s3 = s2-s1

我得到一个类型为s3的系列

timedelta64 [ns]

0    385 days, 04:10:36
1     57 days, 22:54:00
2    642 days, 21:15:23
3    615 days, 00:55:44
4    160 days, 22:13:35
5    196 days, 23:06:49
6     23 days, 22:57:17
7      2 days, 22:17:31
8    622 days, 01:29:25
9     79 days, 20:15:14
10    23 days, 22:46:51
11   268 days, 19:23:04
12                  NaT
13                  NaT
14   583 days, 03:40:39

我如何看待该系列的1个元素:

s3 [10]

我得到这样的东西:

numpy.timedelta64(2069211000000000,’ns’)

如何从s3中提取天数,并可能将其保留为整数(对小时/分钟等不太感兴趣)?

在此先感谢您的帮助。


阅读 263

收藏
2020-12-20

共1个答案

一尘不染

您可以将其转换为具有日精度的timedelta。要提取天的整数值,可以将其除以一天的时间增量。

>>> x = np.timedelta64(2069211000000000, 'ns')
>>> days = x.astype('timedelta64[D]')
>>> days / np.timedelta64(1, 'D')
23

或者,如@PhillipCloud建议,只是days.astype(int)因为timedelta仅仅是一个64位整数,根据你所传递的第二个参数被解释以各种方式('D''ns',…)。

您可以在这里找到更多有关它的信息

2020-12-20