python - 使用熊猫的两个时间戳之间的差异每天剩余小时
问题描述
我正在处理日志数据,我必须每天查找软件的使用情况。例如,如果日志显示用户:开始时间 04/01/2019 上午 9:15 结束时间 04/03/2019 下午 12:00。如果我在这两个日期之间有所不同,那么我将获得跨度而不是特定日期的数据使用情况。有没有一种方法可以让我在结束日期之前获得每天的数据使用量。
数据将具有如下所示的类似形式
这就是我想要实现的目标
解决方案
由于您不提供一些原始数据,因此我自己创建了一些假数据。另外,我不确定您是否要Start date
与End 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
如果您需要比较您的实际日期,您可能需要使用datetime
lib 之类的东西来做到这一点。表格示例:
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
推荐阅读
- dart - 如何在 dart 中添加序列化程序以将 iso 8601 转换为 datetime 对象?
- forum - Softbank NAO 和 Pepper 的任何活跃论坛?
- java - milo 的 OPC 客户端无法连接到本地 OPC 发现服务
- php - 如何将复选框值发布到数组?
- php - 如何使用php查找特定字符以从字符串创建数组
- swift - 如何以编程方式编写 func ..(对于续集:UIStoryboardSeque,发件人:Any?)
- node.js - 使用 twilio 在对话流上创建用户 ID
- sql - 不能使用 SQL 滞后总和
- spring - 使用来自 spring cloud datfalow 的 kubernetes 中的 cronjobs 启动 Pod 生命周期
- django - 如何使用 Django 将 pdf 文件转换为 Excel 文件