当前位置: 首页 > 知识库问答 >
问题:

如何使用python timedelta函数

慕金林
2023-03-14

我使用下面的逻辑来计算python列表中的平均时间增量。

from datetime import datetime,timedelta


def entry_rate(entry_timestamps):
   entry_deltas = [d1-d2 for d1,
                d2 in zip(entry_timestamps[1:], entry_timestamps[:-1])]
   average_timedelta = (sum(entry_deltas, timedelta(
                0)) / len(entry_deltas)).total_seconds() if len(entry_deltas) != 0 else -1.0
   return average_timedelta

以下是该函数的输入:-

entry_timestamps = [datetime.datetime(2019, 11, 13, 7, 36, 21), datetime.datetime(2019, 11, 13, 7, 40, 53), datetime.datetime(2019, 11, 13, 7, 45, 25), datetime.datetime(2019, 11, 13, 7, 49, 58), datetime.datetime(2019, 11, 13, 7, 54, 30), datetime.datetime(2019, 11, 13, 7, 58, 32), datetime.datetime(2019, 11, 13, 8, 2, 34), datetime.datetime(2019, 11, 13, 8, 6, 36), datetime.datetime(2019, 11, 13, 8, 10, 38), datetime.datetime(2019, 11, 13, 8, 14, 40), datetime.datetime(2019, 11, 13, 8, 18, 42), datetime.datetime(2019, 11, 13, 8, 22, 44), datetime.datetime(2019, 11, 13, 8, 26, 46), datetime.datetime(2019, 11, 13, 8, 29, 18)]

然而,我得到了下面的错误。

在prepare_llog(llog_pd)288 289 result_df[‘输入率’]=\--

##################################################################################################################################################

熊猫/_libs/lib.pyx_libs.lib.map_infer()

in(x)288 289result_df['entry_rate'] =\ --

compute_entry_rate(entry_timestamps)49 50average_timedelta=(和(entry_deltas,时间增量(---

_()需要1个位置参数,但给出了2个

有人能建议如何解决这个问题吗?

共有1个答案

壤驷鸿祯
2023-03-14

你可以这样对待熊猫:

S = pd.Series([datetime.datetime(2019, 11, 13, 7, 36, 21), 
    datetime.datetime(2019, 11, 13, 7, 40, 53), 
    datetime.datetime(2019, 11, 13, 7, 45, 25), 
    datetime.datetime(2019, 11, 13, 7, 49, 58), 
    datetime.datetime(2019, 11, 13, 7, 54, 30), 
    datetime.datetime(2019, 11, 13, 7, 58, 32),
    datetime.datetime(2019, 11, 13, 8, 2, 34),
    datetime.datetime(2019, 11, 13, 8, 6, 36), 
    datetime.datetime(2019, 11, 13, 8, 10, 38), 
    datetime.datetime(2019, 11, 13, 8, 14, 40), 
    datetime.datetime(2019, 11, 13, 8, 18, 42), 
    datetime.datetime(2019, 11, 13, 8, 22, 44), 
    datetime.datetime(2019, 11, 13, 8, 26, 46), 
    datetime.datetime(2019, 11, 13, 8, 29, 18)])

S.diff().mean().total_seconds()

输出:

244.384615384

其中,作为函数,entry_rate返回,没有错误。:

 entry_rate(entry_timestamps)

输出:

 244.384615

每个回路5.16µs±193 ns(7次运行的平均值±标准偏差,每个100000个回路)

使用以下功能:

389µs±22.9µs/循环(平均值±std. dev. of 7次运行,每个循环1000次)

 类似资料:
  • 问题内容: 我正在尝试使用该功能。我已经将字符串类型time格式化为datetime 我定义了搜索开始时间和结束时间: 然后我打电话 这是我得到的错误: 请如何解决。谢谢 问题答案: 示例-我使用评论中的信息: 结果:

  • 下面是我认为基于我看到的javafx示例可以工作的方法,但是在(ctla.match(ke))上出现了一个错误,指向“match”并说“Identifier expected但'match'found”。任何指向具有复杂键事件处理的scalafx示例的链接都将受到赞赏。

  • 问题内容: 我有点着急,所以我只想问一个关于querydsl的快速问题。根据我的研究,查询dsl不支持存储过程,但可以支持数据库功能。我的问题是我们如何使用querydsl调用那些数据库函数? 问题答案: 您可以在查询中使用基于TemplateExpression的任意JPQL语法注入。 例如 如果您使用的是Hibernate 4.3或任何其他符合JPA 2.1的提供程序,则可以使用FUNCTIO

  • 我想知道是否有办法在python代码中使用c函数 例如,在做了我的研究之后,我确实使用. dll文件找到了这个解决方案。但它找不到功能我的代码: 享乐cpp: 使用cmd编译它: g有趣。cpp-o乐趣。动态链接库 使用Python调用函数,ctype: 但是我有这个错误: 回溯(最后一次调用):文件“c:\Users\User.vscode\extensions\ms python.python

  • 问题内容: 我非常想使用Map.computeIfAbsent,但是自从lambdas进入本科以来已经太久了。 几乎 直接来自文档:它给出了做事的旧方法的示例: 和新方法: 但是在他们的示例中,我认为我不太“了解”。我将如何转换代码以使用新的lambda表达方式? 问题答案: 假设您有以下代码: 然后,您将看到消息恰好一次,就像在第二次调用时已经存在该键的值一样。的在λ表达式仅仅是该地图将传递到您

  • 问题内容: 我有以下功能: 现在,我想使用一次执行此功能: 问题是,不能腌制lambda,因此失败了。解决此问题的最简洁的方法是什么? 问题答案: 使用功能对象: 运行您的: