两个时间戳之间的差异每天剩余小时数

2024-04-26 04:28:08 发布

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

我在一个日志数据,我必须找到一个软件的日常使用。例如,如果日志为用户显示:开始时间04/01/2019上午9:15结束时间04/03/2019下午12:00。如果我在这两个日期之间取一个差值,那么我将得到跨度的数据使用情况,而不是特定日期的数据使用情况。有没有一种方法,我可以得到每天的数据使用情况,直到结束日期。你知道吗

数据的形式如下所示

enter image description here

这就是我想要达到的目标

enter image description here


Tags: 数据方法用户目标软件时间情况形式
1条回答
网友
1楼 · 发布于 2024-04-26 04:28:08

因为,你没有提供一些原始数据,我自己创建了一些假数据。另外,我也不确定你的意思是不是要从你的描述中比较Start dateEnd date。如果我误解了你,请在下面发表评论。你知道吗

In [10]: import pandas as pd                                                                                                                                                                                                                  

In [11]: import numpy as np                                                                                                                                                                                                                   

In [12]: df1 = pd.DataFrame({"A":[1,2], "Start":[20190302, 20190401], "End": [20190304, 20190402]})                                                                                                                                           

In [13]: df1                                                                                                                                                                                                                                  
Out[13]: 
   A     Start       End
0  1  20190302  20190304
1  2  20190401  20190402

In [14]: df2 = pd.DataFrame(df1.values.repeat((df1.End - df1.Start > 1) + 1, axis=0), columns=df1.columns)                                                                                                                                    

In [15]: df2                                                                                                                                                                                                                                  
Out[15]: 
   A     Start       End
0  1  20190302  20190304
1  1  20190302  20190304
2  2  20190401  20190402

如果需要比较实际日期,可能需要使用datetimelib之类的方法。表格示例:

In [28]: import datetime                                                                                                                                                                                                                      

In [29]: dt1 = datetime.datetime.strptime("11/30/2018 17:13", "%m/%d/%Y %H:%M")                                                                                                                                                               

In [30]: dt1                                                                                                                                                                                                                                  
Out[30]: datetime.datetime(2018, 11, 30, 17, 13)

In [31]: dt2 = datetime.datetime.strptime("11/29/2018 17:13", "%m/%d/%Y %H:%M")                                                                                                                                                               

In [32]: dt3 = datetime.datetime.strptime("11/28/2018 17:13", "%m/%d/%Y %H:%M")                                                                                                                                                               

In [33]: dt1 - dt2                                                                                                                                                                                                                            
Out[33]: datetime.timedelta(days=1)

In [34]: (dt1 - dt2).days                                                                                                                                                                                                                     
Out[34]: 1

In [35]: (dt1 - dt3).days                                                                                                                                                                                                                     
Out[35]: 2

相关问题 更多 >