dataframe - 根据条件更改 DataFrame 行中的值
问题描述
我有一个 .csv 文件,其中有一列名为“值”
ID Values
0 0.201915
1 0.441945
2 0.001931
3 0.221311
4 0.303101
这个 .csv 文件有 180900 行。我需要根据条件更改值,例如:
if [value] < 0.030 then [value] = 0.030 else [value] AND if [value] > 0.95 then [value] = 0.95 else [Value]
到目前为止我尝试了什么:(只检查低于 0.025 的值)
i = 1
for r in eachrow(df)
global i
if r.Values < 0.025
r.Values = 0.025
i =1+1
end
有人能帮我吗?
解决方案
做就是了
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 所建议的,您也可以尝试clamp
速度稍快的方法:
df.Values = clamp.(df.Values, 0.3, 0.95)
推荐阅读
- azure - Azure ARM 模板 GEN_PASSWORD 占位符不起作用
- python - 使用 csv 我想选择一个带有数据的随机行并提取数据,所以 S =songs 和 A = artist,repeat
- angular-cli - 无法使用 Angular 10 创建新应用
- php - 当值为空时,Laravel 将日期设置为 1970
- android - 如何在视频电话会议之间显示警报对话框
- unit-testing - IllegalStateException 有时会发生,有时不会
- mysql - csv 文件中的逗号被识别为分隔符,即使它在双引号内
- python - 如何在pyspark中分组后从列中取出唯一值并创建具有某些条件的另一列
- r - r-exams 关于 2 个不同 xxx.Rmd 文件的相同数据的问题
- angular - this.x.toLowerCase 不是函数 - 过滤器的问题 angular ionic