dataframe - Julia 数据帧 : shift a column by more rows

标签 dataframe julia shift

我正在寻找一种方法,如何将 DataFrame 列移动更多行。

移动一行效果很好:

df = DataFrame(A=[1,2,3,4], B=[9,8,7,6])

julia> transform(df, "A" => ShiftedArrays.lag => :A1)
4×3 DataFrame
 Row │ A      B      A1
     │ Int64  Int64  Int64?
─────┼───────────────────────
   1 │     1      9  missing
   2 │     2      8        1
   3 │     3      7        2
   4 │     4      6        3

但是我无法找到如何使用具有更多参数的函数来转换整个列,如下所示(两者都不起作用):

transform(df, "A" => x -> ShiftedArrays.lag(x, 2) => :A1)

transform(df, ["A", 2] => f => :A1)

我希望有一个比使用 for 循环更合适的解决方案:-)

最佳答案

您需要在匿名函数周围添加额外的括号:

transform(df, "A" => (x -> ShiftedArrays.lag(x, 2)) => :A1)

Result:
 Row │ A      B      A1      
     │ Int64  Int64  Int64?  
─────┼───────────────────────
   1 │     1      9  missing 
   2 │     2      8  missing 
   3 │     3      7        1
   4 │     4      6        2

关于dataframe - Julia 数据帧 : shift a column by more rows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74089956/

相关文章:

clojure - 如果像 Dylan、Julia 和 Seph 那样放弃前导括号,Clojure 会失去什么?

python - 在 Pandas 数据框中将某些行向左移动

c - 为什么我不能使用 int 的第一位?

java - java中的位运算

r - 如何比较两个数据框?

python - 如何根据另一个数据框的值对 pandas groupby 应用更改?

python - 在数据框中创建最大/最小列时选择列的问题

csv - 将唯一的连续行号添加到 pyspark 中的数据框

file - 如何从 Julia 中打开的 IOStream 中检索文件路径

algorithm - 在非循环有向图中查找两个节点之间所有路径的有效方法