【问题标题】:How to add a column of seconds to a column of times in python?如何在python中将一列秒添加到一列时间?
【发布时间】:2019-07-10 11:43:17
【问题描述】:

我有一个文件包含一些列,其中第二列是时间。就像我在下面展示的一样。我需要在第一个文件(如下)的时间列中添加一列时间,所有时间都以秒为单位:“2.13266 2.21784 2.20719 2.02499 2.16543”。我的问题是如何将这两个时间相加。也许在某些情况下,当我添加这些时间时,它会转到第二天,在这种情况下如何更改相关行中的日期。

2014-08-26 19:49:32 0
2014-08-28 05:43:21 0
2014-08-30 11:47:54 0
2014-08-30 03:26:10 0

【问题讨论】:

  • 使用 pandas 日期时间框架并添加 Timedelta(seconds=value)

标签: python datetime time add timedelta


【解决方案1】:

可能最简单的方法是将文件读入 pandas 数据框并将每一行解析为 datetime 对象。然后创建一个传递小数秒的datetime.timedelta 对象。

datetime 对象 + timedelta 可以很好地处理几天的环绕,所以这应该可以在没有任何额外代码的情况下工作。最后,将更新后的数据框写回文件。

【讨论】:

    【解决方案2】:

    确保您的日期时间字段是实际的日期时间(如果从 csv 读取,则不是)。

    df['DateTimeField'] = pd.to_datetime(df['DateTimeField'])
    

    然后,将您的秒列转换为时间增量列并添加到日期时间字段

    df['NewDateTimeField'] = df['DateTimeField'] + pd.to_timedelta(df['TimeDeltaField'], unit='s')
    

    【讨论】:

      【解决方案3】:

      好的。最后通过以下代码完成: d= 2.13266 dd= pd.to_timedelta (int(d), unit='s') df= pd.Timestamp('2014-08-26 19:49:32') new = df + dd

      【讨论】:

        猜你喜欢
        • 2019-11-16
        • 1970-01-01
        • 1970-01-01
        • 2023-01-19
        • 2021-03-20
        • 1970-01-01
        • 2021-11-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多