如何将Julia的DataFrame透视(pivot)为行列值唯一的格式?附示例
Julia DataFrame 实现指定Pivot格式操作
可以实现,直接使用DataFrames包的unstack(或pivot)函数即可完成需求,以下是具体代码:
首先修正原代码中的包导入错误(应为using DataFrames而非using DataFrame),然后执行转换:
using DataFrames df = DataFrame([:a=>["1","1","2"], :b=>["a","b","a"], :c=>[123,321,100]]) # 方式1:使用unstack函数(常用方式) result_df = unstack(df, :a, :b, :c) # 方式2:使用pivot函数(DataFrames v1.4及以上版本支持) result_df = pivot(df, rows=:a, cols=:b, values=:c)
执行后得到的结果与你要求的格式一致:
"a" "b" "1" 123 321 "2" 100 missing
说明:
unstack是DataFrames中用于长表转宽表的核心函数,这里指定:a作为行的唯一标识,:b作为列的唯一标识,:c作为对应填充的值- 当某个行-列组合不存在对应值时,会自动用
missing填充,满足每行、每列取值唯一的要求
内容的提问来源于stack exchange,提问作者TylerD
相关产品推荐
相关产品推荐

