从numpy.timedelta64值中提取天数

发布于 2021-01-29 19:35:14

我正在使用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中提取天数,并可能将其保留为整数(对小时/分钟等不太感兴趣)?

在此先感谢您的帮助。

关注者
0
被浏览
101
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以将其转换为具有日精度的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',…)。

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看