如何在 Julia 数据帧中转换 epoch/unix 时间?
How to convert epoch/unix time in Julia dataframe?
我正在尝试找到将 df[!, r"TimeStamp"]
转换为日期时间格式的解决方案,即 unix 或 epoch 时间加上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 循环 ,使用 @
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
我正在尝试找到将 df[!, r"TimeStamp"]
转换为日期时间格式的解决方案,即 unix 或 epoch 时间加上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 循环 ,使用 @
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