dataframe - 循环遍历 Julia 中的列

标签 dataframe julia

我想向 DataFrame 中的所有列添加一个数字。我正在尝试使用,

for i in names(df)
    df.i = df.i .+ 1
end

但这会给出错误 ArgumentError: 列名称:i 在数据框中找不到

感谢任何帮助。提前致谢。

最佳答案

DataFrames.jl 1.0 或更高版本的当前建议

只需写:

df .+= 1

得到你想要的。

如果您想循环遍历列,它也受支持。以下是一些示例:

for n in names(df)
    df[!, n] .+= 1
end

for col in eachcol(df)
    col .+= 1
end

1.0 版本之前 DataFrames.jl 的旧建议

目前您可以使用:

for i in axes(df, 2)
    df[i] .+= 1
end

for n in names(df)
    df[n] .+= 1
end

但是,将来您可能需要编写(有讨论是否应该更改单参数索引的含义):

for col in eachcol(df, false)
    col .+= 1
end

foreach(x -> x .+= 1, eachcol(df, false))

关于dataframe - 循环遍历 Julia 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55095878/

相关文章:

julia - Julia 中的字段和属性有什么区别?

julia - 创建一个函数来构建一组特定的组合

python - 基于循环变量和附加字符串创建新的列名

r - 为什么将行名更改为相同时相同的数据帧会变得不同

R从列表中提取数据帧,列名中没有前缀

parallel-processing - 在 Julia 中使用 @distributed 时可能的 reducer 函数列表

Julia 用推导式替换嵌套的 for 循环

implicit-conversion - 为什么非 bool 值不在 bool 表达式中隐式转换?

pandas - 带seaborn的条形图,按行着色

python - 如何在 Pandas 中仅内爆(爆炸的反向)非空值。使用 pandas group by 将多行合并为单行