Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dataframe 根据条件更改数据帧行中的值_Dataframe_Julia - Fatal编程技术网

Dataframe 根据条件更改数据帧行中的值

Dataframe 根据条件更改数据帧行中的值,dataframe,julia,Dataframe,Julia,我有一个.csv文件,其中有一列名为“Values” 此.csv文件有180900行。我需要根据条件更改值,如: 如果[value]0.95,则[value]=0.95其他[value] 到目前为止我尝试的:(首先只检查低于0.025的值) i=1 对于每个箭头中的r(df) 全球i 如果r.值

我有一个.csv文件,其中有一列名为“Values”

此.csv文件有180900行。我需要根据条件更改值,如:

如果[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)