Dataframe 根据条件更改数据帧行中的值
我有一个.csv文件,其中有一列名为“Values” 此.csv文件有180900行。我需要根据条件更改值,如:Dataframe 根据条件更改数据帧行中的值,dataframe,julia,Dataframe,Julia,我有一个.csv文件,其中有一列名为“Values” 此.csv文件有180900行。我需要根据条件更改值,如: 如果[value]0.95,则[value]=0.95其他[value] 到目前为止我尝试的:(首先只检查低于0.025的值) i=1 对于每个箭头中的r(df) 全球i 如果r.值
如果[value]<0.030,则[value]=0.030其他[value],如果[value]>0.95,则[value]=0.95其他[value]
到目前为止我尝试的:(首先只检查低于0.025的值)
i=1
对于每个箭头中的r(df)
全球i
如果r.值<0.025
r、 数值=0.025
i=1+1
结束
有人能帮我吗?就这样吧
df.Values = min.(max.(0.3, df.Values), 0.95);
以下是您的数据的完整代码:
julia> df = CSV.read(IOBuffer("""ID Values
0 0.201915
1 0.441945
2 0.001931
3 0.961311
4 0.303101"""),DataFrame, delim=" ", ignorerepeated=true)
5×2 DataFrame
Row │ ID Values
│ Int64 Float64
─────┼─────────────────
1 │ 0 0.201915
2 │ 1 0.441945
3 │ 2 0.001931
4 │ 3 0.961311
5 │ 4 0.303101
julia> max(3,4)
4
julia> df.Values = min.(max.(0.3, df.Values), 0.95);
julia> df
5×2 DataFrame
Row │ ID Values
│ Int64 Float64
─────┼─────────────────
1 │ 0 0.3
2 │ 1 0.441945
3 │ 2 0.3
4 │ 3 0.95
5 │ 4 0.303101
根据Bogumil的建议,您也可以尝试使用速度稍快的夹具
:
df.Values = clamp.(df.Values, 0.3, 0.95)
或者使用
夹具
。我认为它不需要Julia 1.6。
julia> df = CSV.read(IOBuffer("""ID Values
0 0.201915
1 0.441945
2 0.001931
3 0.961311
4 0.303101"""),DataFrame, delim=" ", ignorerepeated=true)
5×2 DataFrame
Row │ ID Values
│ Int64 Float64
─────┼─────────────────
1 │ 0 0.201915
2 │ 1 0.441945
3 │ 2 0.001931
4 │ 3 0.961311
5 │ 4 0.303101
julia> max(3,4)
4
julia> df.Values = min.(max.(0.3, df.Values), 0.95);
julia> df
5×2 DataFrame
Row │ ID Values
│ Int64 Float64
─────┼─────────────────
1 │ 0 0.3
2 │ 1 0.441945
3 │ 2 0.3
4 │ 3 0.95
5 │ 4 0.303101
df.Values = clamp.(df.Values, 0.3, 0.95)