我正在使用panda/python,我有两个日期时间序列s1和s2,它们是在包含日期/时间的df字段上使用'to_datetime'函数生成的。
当我用s2减去s1
s3 = s2 - s1
我得到一个序列s3,类型为
时间增量64 [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个元素:
第三节[10]
我得到这样的东西:
时间增量数值64(206921100000000,“纳秒”)
我如何从s3中提取天数,并将它们保留为整数(对小时/分钟等不太感兴趣)?
提前感谢您的帮助。
4条答案
按热度按时间m4pnthwp1#
您可以将其转换为具有天精度的timedelta。要提取天的整数值,您可以将其除以一天的timedelta。
或者,正如@PhillipCloud建议的那样,只需
days.astype(int)
,因为timedelta
只是一个64位整数,根据传入的第二个参数('D'
、'ns'
...),可以用不同的方式进行解释。您可以在here中找到更多关于它的信息。
67up9zun2#
使用
dt.days
获取整数形式的days属性。例如:
更一般地说-您可以使用
.components
属性来存取timedelta
的简化形式。现在,要获取
hours
属性:czq61nw13#
假设有一个时间增量序列:
转换这个timedelta列或序列的一种方法是将其转换为一个Timedelta对象(panda 0.15.0+),然后从该对象中提取日期:
另一种方法是将序列转换为以天为单位的timedelta64,然后将其转换为int:
lstz6jyr4#
首先,使用以下公式转换panda日期时间中的日期时间列:
完成后,使用以下命令减去两个日期:
要转换为小时,请使用'h'而不是'm'