줄리아에서 데이터프레임 정렬하는 법
코드
using DataFrames
Unit1 = DataFrame(
member = ["다영","루다","수빈","진숙"],
birth = [99,97,96,99],
height = [161,157,159,162]
)
Unit2 = DataFrame(
member = ["소정","주연","지연","현정"],
birth = [95,98,95,94],
height = [166,172,163,165]
)
WJSN = vcat(Unit1, Unit2)
push!(WJSN, ["다원",97,167])
push!(WJSN, ["연정",99,165])
sort(WJSN, 3)
sort(WJSN, :birth)
sort(WJSN, [:birth, :height])
sort(WJSN, :birth, rev = true)
위의 예제 코드를 실행해보고 그 결과를 확인해보자.
julia> WJSN
10×3 DataFrame
Row │ member birth height
│ String Int64 Int64
─────┼───────────────────────
1 │ 다영 99 161
2 │ 루다 97 157
3 │ 수빈 96 159
4 │ 진숙 99 162
5 │ 소정 95 166
6 │ 주연 98 172
7 │ 지연 95 163
8 │ 현정 94 165
9 │ 다원 97 167
10 │ 연정 99 165
WJSN
데이터프레임은 위와 같다.
열번호로 정렬 sort(df, cols::integer)
cols
번째 열을 기준으로 정렬한다.
julia> sort(WJSN, 3)
10×3 DataFrame
Row │ member birth height
│ String Int64 Int64
─────┼───────────────────────
1 │ 루다 97 157
2 │ 수빈 96 159
3 │ 다영 99 161
4 │ 진숙 99 162
5 │ 지연 95 163
6 │ 현정 94 165
7 │ 연정 99 165
8 │ 소정 95 166
9 │ 다원 97 167
10 │ 주연 98 172
3
번째 열인 height
를 기준으로 정렬된 것을 확인할 수 있다.
열이름으로 정렬 sort(df, cols::Symbol)
이름인 심볼 cols
인 열을 기준으로 정렬한다.
julia> sort(WJSN, :birth)
10×3 DataFrame
Row │ member birth height
│ String Int64 Int64
─────┼───────────────────────
1 │ 현정 94 165
2 │ 소정 95 166
3 │ 지연 95 163
4 │ 수빈 96 159
5 │ 루다 97 157
6 │ 다원 97 167
7 │ 주연 98 172
8 │ 다영 99 161
9 │ 진숙 99 162
10 │ 연정 99 165
:birth
가 들어가 birth
를 기준으로 정렬된 것을 확인할 수 있다.
정렬 우선순위 sort(df, cols::Array)
cols
의 순서에 따라 순위를 정해서 정렬한다.
julia> sort(WJSN, [:birth, :height])
10×3 DataFrame
Row │ member birth height
│ String Int64 Int64
─────┼───────────────────────
1 │ 현정 94 165
2 │ 지연 95 163
3 │ 소정 95 166
4 │ 수빈 96 159
5 │ 루다 97 157
6 │ 다원 97 167
7 │ 주연 98 172
8 │ 다영 99 161
9 │ 진숙 99 162
10 │ 연정 99 165
birth
로 정렬하되 height
도 정렬되었다. 그냥 birth
를 기준으로 정렬한 것과 비교해보면 2
행과 3
행이 역전되었다.
역순으로 정렬 sort(df, rev::Bool=false)
rev = true
를 주면 된다. 기본값은 false
다.
julia> sort(WJSN, :birth, rev = true)
10×3 DataFrame
Row │ member birth height
│ String Int64 Int64
─────┼───────────────────────
1 │ 다영 99 161
2 │ 진숙 99 162
3 │ 연정 99 165
4 │ 주연 98 172
5 │ 루다 97 157
6 │ 다원 97 167
7 │ 수빈 96 159
8 │ 소정 95 166
9 │ 지연 95 163
10 │ 현정 94 165
환경
- OS: Windows
- julia: v1.6.3