:i
實際上是一個符號朱莉婭:
julia> typeof(:i)
Symbol
您可以定義一個變量綁定到一個像這樣的符號:
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
)可以接受一個共同的索引:
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 │ │ │ │...
這就是解決方案!謝謝 ! – Manuel
我想知道爲什麼你使用':1'作爲列索引名稱,爲什麼不只是使用數組? – Gnimuc
接受答案,如果它解決了你的問題:) –