Julia中如何计算新列并添加至DataFrame?(累加和示例)
Julia DataFrame添加累加和列的实现方法
一、用你的自定义函数生成新列
你可以通过生成结果数组后直接赋值给新列的方式实现,代码如下:
using DataFrames df = DataFrame(A = 1:4) function first(j) val = 0 while j != 0 val += df.A[j] j -= 1 end return val end # 生成B列并赋值 df[!, :B] = [first(i) for i in 1:nrow(df)]
注意:你的自定义函数依赖全局变量df,这在Julia中会降低运行效率,且不利于代码复用,建议后续编写函数时尽量将数据作为参数传入。
二、更简便高效的实现方式
Julia的DataFrames包配合内置的cumsum函数可以直接完成累加和计算,这是最推荐的方法,代码简洁且性能更优:
方法1:直接赋值
df[!, :B] = cumsum(df.A)
方法2:使用transform函数(适合链式操作)
transform(df, :A => cumsum => :B)
运行后都能得到你想要的结果:
Row │ A B │ Int64 Int64 ─────┼────────────── 1 │ 1 1 2 │ 2 3 3 │ 3 6 4 │ 4 10
内容的提问来源于stack exchange,提问作者Allure
相关产品推荐
相关产品推荐

