怎么删除dataframe里面的内容呢,使其更新?
group=[:A,:A,:B,:B,:C,:C,:C,:C] X = 100:108 df = DataFrame(; group, X) julia> df = DataFrame(; group, X) 8×2 DataFrame Row │ group X │ Symbol Int64 ─────┼─────────────── 1 │ A 101 2 │ A 102 3 │ B 103 4 │ B 104 5 │ C 105 6 │ C 106 7 │ C 107 8 │ C 108
我想删除以C的开始的第二行,应该要怎么写呢?不写成deleteat!(df,6),怎么在代码中体现出C和2呢?希望大佬指导
首先找出所有含:C的行:
:C
julia> idx = findall(∋(:C), eachrow(df)) 4-element Vector{Int64}: 5 6 7 8
按照你的需求删除第idx[2]行:
idx[2]
deleteat!(df, idx[2])
老师,那我要是想用C和106去体现,应该怎么写呢?就是让代码体现出C和106,还是删除那一行,我试了下findall不行了,这个要怎么弄呢?
你的意思是删除Symbol=C, X=106的行吗?
Symbol=C, X=106
是这样的,老师我写成了这样 ,但是感觉有些慢,还有更快的高效的方法吗?
deleteat!(df,findall(df.group .== :C .&& df.X .== 106))
你是指速度慢吗? 在100万行的DataFrame上Benchmark看起来速度还好啊
BenchmarkTools.Trial: 2899 samples with 1 evaluation. Range (min … max): 1.577 ms … 3.258 ms ┊ GC (min … max): 0.00% … 0.00% Time (median): 1.660 ms ┊ GC (median): 0.00% Time (mean ± σ): 1.720 ms ± 161.302 μs ┊ GC (mean ± σ): 0.08% ± 1.10%
备案号:京ICP备17009874号-2