I'd like to know how I can permanently delete multiple rows from a dataframe in Julia. Here is the dataframe example:
Group Variable1 Variable2
String Float64 Float64
1 B -0.661256 0.265538
2 B 0.111651 0.837895
3 A 0.197754 0.987195
4 A 1.35057 0.696815
5 A -1.20899 0.496407
6 B 0.813047 0.324904
I'd like to delete rows 2, 4, and 6 from my dataframe. There is an easy function to do that?
If you want to delete inplace:
delete!(df, [2, 4, 6])
In case you want a new df without the selected rows:
df[Not([2, 4, 6]), :]
As of DataFrames.jl version 1.3, delete! has been deprecated and replaced with deleteat!. This change was made to more correctly reflect the difference between Base.delete! and Base.deleteat!. You can compare the docstring for Base.deleteat! to the docstring for Base.delete!. In fact, the DataFrames deleteat! function is a method extension of Base.deleteat!.
Here's an example of using deleteat! on a data frame:
julia> using DataFrames
julia> df = DataFrame(a=1:4, b=5:8)
4×2 DataFrame
Row │ a b
│ Int64 Int64
─────┼──────────────
1 │ 1 5
2 │ 2 6
3 │ 3 7
4 │ 4 8
julia> deleteat!(df, [2, 3])
2×2 DataFrame
Row │ a b
│ Int64 Int64
─────┼──────────────
1 │ 1 5
2 │ 4 8
Here's the DataFrames documentation for deleteat!:
https://dataframes.juliadata.org/stable/lib/functions/#Base.deleteat!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With