Удалить конкретные данные в столбце в Юлии - PullRequest
1 голос
/ 09 мая 2019

Я использую Джулию для анализа своих данных, у меня есть некоторые выбросы в моих данных, поэтому я хочу удалить их; есть некоторые данные; например цифры выше 75; Я хочу исключить их. например, используя DataFrames.jl, df является набором данных``:

julia> using DataFrames
julia> df = DataFrame(A = 1:4, B = ["M", "F", "F", "M"])

Как я могу удалить 1 в столбце A

Какой лучший код для этого?

Спасибо

Ответы [ 2 ]

2 голосов
/ 09 мая 2019

Если данные находятся в векторе, вы можете использовать фильтр:

julia> data = rand(collect(1:100), 30); println(data);
[82, 80, 63, 6, 39, 44, 80, 80, 83, 58, 68, 87, 49, 40, 19, 87, 48, 19, 4, 80, 51, 
82, 37, 2, 74, 90, 19, 68, 47, 11]

julia> filtered = filter(x -> x < 75, data); println(filtered);
[63, 6, 39, 44, 58, 68, 49, 40, 19, 48, 19, 4, 51, 37, 2, 74, 19, 68, 47, 11]

Если данные находятся в кадре данных, вы можете фильтровать строки по значениям столбцов:

julia>  df = DataFrame(A = 1:4, B = ["M", "F", "F", "M"])
4×2 DataFrame
│ Row │ A     │ B      │
│     │ Int64 │ String │
├─────┼───────┼────────┤
│ 1   │ 1     │ M      │   
│ 2   │ 2     │ F      │
│ 3   │ 3     │ F      │
│ 4   │ 4     │ M      │

julia> df2 = filter(x -> x.A != 1, df)
3×2 DataFrame
│ Row │ A     │ B      │
│     │ Int64 │ String │
├─────┼───────┼────────┤
│ 1   │ 2     │ F      │
│ 2   │ 3     │ F      │
│ 3   │ 4     │ M      │
0 голосов
/ 15 мая 2019

Вы можете использовать

julia> df = df[df.A .!= 1, :]
3×2 DataFrame
│ Row │ A     │ B      │
│     │ Int64 │ String │
├─────┼───────┼────────┤
│ 1   │ 2     │ F      │
│ 2   │ 3     │ F      │
│ 3   │ 4     │ M      │

. . перед != используется для векторизации операции, а : используется для возврата всех столбцов.Если вы хотите дополнительно фильтровать и по столбцам, вместо :

вы можете передать нужный вам вектор столбцов.
...