python-3.x - 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])
但它出错了。
解决方案
如果你想对列(系列)做一些事情,DataFrame
你可以使用apply
方法,例如:
import datetime
# New column 'datetime' is created from old 'seconds'
df['datetime'] = df['seconds'].apply(lambda x: datetime.datetime.fromtimestamp(x))
查看文档以获取更多示例。总体建议 - 尝试根据值的向量(或系列)进行思考。pandas 中的大多数操作都可以用整个系列甚至数据框来完成。
推荐阅读
- mysql - 调用特定列
- javascript - 在加载的 ajax 内容上绑定点击事件
- r - 在 R 中运行循环时在粘贴命令中包含索引
- c# - 为什么当我将“工作单元”与通用接口一起使用时会看到错误?
- word2vec - 使用 AutoML 评估算法 Word2Vec 的超参数
- node.js - 错误在“npm”注册表上找不到“@jest/reporters@^24.5.0”所需的包“@jest/environment@^24.5.0”
- continuous-integration - 在 Git 实验室运行器中解决远程源已存在错误
- java - 如何使用媒体会话进行媒体播放?
- oracle - 手动添加字段和查询到现有的单组布局
- html - 将内容脚本 css 与站点 css 分开?