我正试图找到转换df[!, r"TimeStamp"]
的解决方案,这是unix时代或time, to datetime格式,加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()
使用循环,带@MrFuppes帮助,但是不知道在Julia中是否有像pd.to_datetime
和timedelta(hours = 9)
这样的功能。
可以将时间戳列广播给DateTime。添加持续时间也非常直接:
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