dataframe - 如何在 Julia 数据框中转换纪元/unix 时间?
问题描述
我正在尝试找到将unix或纪元df[!, r"TimeStamp"]
时间转换为加 9 小时的日期时间格式的解决方案,例如在 Python 中。pd.to_datetime(df["TimeStamp"], unit = "ms")
这里的数据框示例Julia
:
df = DataFrame(TimeStamp = [1632868171713,1632868172713,1632868173713],
Roll = [-1.1, -2, 1],
Pitch =[-1, -1, 3.1],
Yaw = [-1, -4.2, 2],
)
并且,下面是预期的输出。
TimeStamp Roll Pitch Yaw
Date Float64 Float64 Float64
1 2021-09-29 07:29:31.713 -1.1 -1.0 -1.0
2 2021-09-29 07:29:32.713 -2.0 -1.0 -4.2
3 2021-09-29 07:29:33.713 1.0 3.1 2.0
更新:
我有unix2datetime()
使用for loops的解决方案,@MrFuppes 有帮助,但想知道 Julia 中是否有类似pd.to_datetime
andtimedelta(hours = 9)
的功能。
解决方案
您可以将时间戳列广播到日期时间。添加持续时间也很简单:
using Dates
using DataFrames
df = DataFrame(TimeStamp=[1632868171713,1632868172713,1632868173713],
Roll=[-1.1, -2, 1],
Pitch=[-1, -1, 3.1],
Yaw=[-1, -4.2, 2],
)
df.Date = unix2datetime.(df.TimeStamp / 1000)
# or map it:
# df.Date = map(unix2datetime, df.TimeStamp / 1000)
df.DatePlusSevenH = df.Date + Hour(7)
println(df)
# 3×6 DataFrame
# Row │ TimeStamp Roll Pitch Yaw Date DatePlusSevenH
# │ Int64 Float64 Float64 Float64 DateTime DateTime
# ─────┼────────────────────────────────────────────────────────────────────────────────────────────
# 1 │ 1632868171713 -1.1 -1.0 -1.0 2021-09-28T22:29:31.713 2021-09-29T05:29:31.713
# 2 │ 1632868172713 -2.0 -1.0 -4.2 2021-09-28T22:29:32.713 2021-09-29T05:29:32.713
# 3 │ 1632868173713 1.0 3.1 2.0 2021-09-28T22:29:33.713 2021-09-29T05:29:33.713
推荐阅读
- android - 如果未获取唤醒锁定并且设备进入睡眠状态,哪些确切的功能会停止工作?
- angular - 在 mat-nav-list 组件中显示单击的列表项值
- android - 使用 mediamuxer 合并 H.264 视频流和 AAC 音频流,但无法播放合并的 mp4 视频
- javascript - 返回由 promise.all() 填充的数组
- cabal - > 阴谋安装。不在公司网络上时出现“读取本地包时出错”(Win 10)
- wordpress - 地理编码不成功,原因如下:ZERO_RESULTS
- javascript - 如何在 angularjs 中创建输入格式属性指令?
- laravel - laravel vue 插件使用方法
- ios - 应用程序的更新版本未反映在设置的应用程序列表中,但应用程序正在更新
- node.js - 使用 express-validator 自定义验证器验证两个字段