Julia로 하는 데이터 조작
Katerina Zahradova
Instructor

# unstack으로 피벗하기 # unstack(DataFrame, :col_as_rows, :col_as_cols, :values, combine = f_to_aggregate)unstack(penguins, :species, :sex, :body_mass_g, combine = median)
3×3 DataFrame
Row species MALE FEMALE
String15 Float64 Float64
_____________________________________
1 Adelie 4000.0 3400.0
2 Chinstrap 3950.0 3550.0
3 Gentoo 5500.0 4700.0
# 더 많은 열을 행으로 피벗
unstack(penguins, [:species, :island], :sex, :body_mass_g, combine = median)
5×4 DataFrame
Row species island MALE FEMALE
String15 String15 Float64? Float64?
_____________________________________________________
1 Adelie Torgersen 4000.0 3400.0
2 Adelie Biscoe 4000.0 3375.0
3 Adelie Dream 3987.5 3400.0
4 Chinstrap Dream 3950.0 3550.0
5 Gentoo Biscoe 5500.0 4700.0
# 여러 열을 열로 사용
unstack(penguins, :sex, [:species, :island], :body_mass_g, combine = sum)
MethodError: no method matching
unstack(::DataFrame, ::Symbol, ::Vector{Symbol}, ::Symbol; combine = sum)
# 특정 조합에 결측치가 있음
unstack(penguins_missing, :species, :sex, :body_mass_g, combine = median)
3×3 DataFrame
Row species MALE FEMALE
String15 Float64 Float64?
_____________________________________
1 Adelie 4000.0 3400.0
2 Chinstrap 3950.0 3550.0
3 Gentoo 5500.0 missing
# 특정 조합에 결측치가 있음
unstack(penguins_missing, :species, :sex, :body_mass_g, combine = median, fill = -1)
3×3 DataFrame
Row species MALE FEMALE
String15 Float64 Float64
_____________________________________
1 Adelie 4000.0 3400.0
2 Chinstrap 3950.0 3550.0
3 Gentoo 5500.0 -1
# 피벗 테이블 저장
pivot_penguins = unstack(penguins_missing, :species, :sex, :body_mass_g, combine = median)
# 암컷 펭귄만 선택
select(pivot_penguins, :species, :FEMALE)
3×2 DataFrame
Row species FEMALE
String15 Float64?
_______________________________
1 Adelie 3400.0
...
Julia로 하는 데이터 조작