如何对 Julia Dataframe 应用转换?
How do you apply a shift to a Julia Dataframe?
在 python pandas 中,shift 函数可用于将数据帧中的行向前移动并可能相对于原始行移动,从而允许计算时间序列数据的变化。 Julia 中的等效方法是什么?
通常会使用 ShiftedArrays.jl 并将其应用于需要移位的列。
这是一个小的工作示例:
using DataFrames, ShiftedArrays
df = DataFrame(a=1:3, b=4:6)
3×2 DataFrame
Row │ a b
│ Int64 Int64
─────┼──────────────
1 │ 1 4
2 │ 2 5
3 │ 3 6
transform(df, :a => lag => :lag_a)
3×3 DataFrame
Row │ a b lag_a
│ Int64 Int64 Int64?
─────┼───────────────────────
1 │ 1 4 missing
2 │ 2 5 1
3 │ 3 6 2
或者你可以这样做:
df.c = lag(df.a)
或者,要领先两行:
df.c = lead(df.a, 2)
等等
在 python pandas 中,shift 函数可用于将数据帧中的行向前移动并可能相对于原始行移动,从而允许计算时间序列数据的变化。 Julia 中的等效方法是什么?
通常会使用 ShiftedArrays.jl 并将其应用于需要移位的列。
这是一个小的工作示例:
using DataFrames, ShiftedArrays
df = DataFrame(a=1:3, b=4:6)
3×2 DataFrame
Row │ a b
│ Int64 Int64
─────┼──────────────
1 │ 1 4
2 │ 2 5
3 │ 3 6
transform(df, :a => lag => :lag_a)
3×3 DataFrame
Row │ a b lag_a
│ Int64 Int64 Int64?
─────┼───────────────────────
1 │ 1 4 missing
2 │ 2 5 1
3 │ 3 6 2
或者你可以这样做:
df.c = lag(df.a)
或者,要领先两行:
df.c = lead(df.a, 2)
等等