首页 > 解决方案 > Python:将以秒为单位的时间转换为系列的日期时间

问题描述

自 1990 年 1 月 1 日以来,我有一列以秒表示的时间,我需要将其转换为 DateTime。我可以弄清楚如何在一个常量(例如添加 10 秒)中执行此操作,但不是一个系列或列。

我最终尝试编写一个循环来一次执行此操作。(可能不是正确的方法,我是 python 新手)。

此代码适用于单行:

def addSecs(secs):
    fulldate = datetime(1990,1,1)
    fulldate = fulldate + timedelta(seconds=secs)
    return fulldate

    b= addSecs(intag112['outTags_1_2'].iloc[1])

print(b)

2018-06-20 01:05:13

有谁知道为数据框中的整个列执行此操作的简单方法?

我试过这个:

for i in range(len(intag112)):
    intag112['TransactionTime'].iloc[i]=addSecs(intag112['outTags_1_2'].iloc[i])

但它出错了。

标签: python-3.xdatetime

解决方案


如果你想对列(系列)做一些事情,DataFrame你可以使用apply方法,例如:

import datetime
# New column 'datetime' is created from old 'seconds'
df['datetime'] = df['seconds'].apply(lambda x: datetime.datetime.fromtimestamp(x))

查看文档以获取更多示例。总体建议 - 尝试根据值的向量(或系列)进行思考。pandas 中的大多数操作都可以用整个系列甚至数据框来完成。


推荐阅读