gpt4 book ai didi

在 Julia 中使用变量索引 Dataframe

转载 作者:行者123 更新时间:2023-12-02 21:38:54 25 4
gpt4 key购买 nike

我想创建 DataFrame 的索引子集并在其中使用一个变量。在这种情况下,我想将第一列的所有 -9999 值更改为 NA。如果我这样做: df[df[:1] .== -9999, :1] = NA 它的工作原理应该是这样的..但是如果我使用变量作为索引器,则会出现错误( LoadError:KeyError: key :我未找到):

i = 1
df[df[:i] .== -9999, :i] = NA

最佳答案

:i实际上是 Julia 中的一个符号:

julia> typeof(:i)
Symbol

您可以定义一个与符号绑定(bind)的变量,如下所示:

julia> i = Symbol(2)
Symbol("2")

那么你可以简单地使用df[df[i] .== 1, i] = 123 :

julia> df
10×1 DataFrames.DataFrame
│ Row │ 2 │
├─────┼─────┤
│ 1 │ 123 │
│ 2 │ 2 │
│ 3 │ 3 │
│ 4 │ 4 │
│ 5 │ 5 │
│ 6 │ 6 │
│ 7 │ 7 │
│ 8 │ 8 │
│ 9 │ 9 │
│ 10 │ 10 │

值得注意的是,在您的示例中 df[df[:1] .== -9999, :1] , :1不是符号:

julia> :1
1

事实上,该表达式等于 df[df[1] .== -9999, 1]其工作原理是有一个相应的 getindex其参数( col_ind )可以接受公共(public)索引的方法:

julia> @which df[df[1].==1, 1]
getindex{T<:Real}(df::DataFrames.DataFrame, row_inds::AbstractArray{T,1}, col_ind::Union{Real,Symbol})

由于您只想更改第一个 (n) 列,因此 Symbol("1") 之间没有区别。和1只要您的列名称定期排列为:

│ Row │ 1   │ 2   │ 3   │...
├─────┼─────┤─────┼─────┤
│ 1 │ │ │ │...

关于在 Julia 中使用变量索引 Dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39804937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com