Julia DataFrames ----结构重划 -stack

1 功能说明

# stack函数会将数据从”表格结构“变成”花括号结构“,即将其行索引变成列索引,反之,unstack函数将数据从”花括号结构“变成”表格结构“,即要将其中一层的列索引变成行索引
# 1.stack:  将数据的列索引转换为行索引(列索引可以简单理解为列名)
# 2.unstack:将数据的行索引转换为列索引
# 3.stack和unstack默认操作为最内层,可以用level参数指定操作层.
# 4.stack和unstack默认旋转轴的级别将会成果结果中的最低级别(最内层)
# 5.stack转换dataframe时,若只有一层列索引则转换后的类型为series,否则为dataframe

2、代码样例

using DataFrames # load package

x = DataFrame(id=[1,2,3,4], id2=[1,1,2,2], M1=[11,12,13,14], M2=[111,112,113,114],M3=[111,112,113,114])
stack(x, [:M1, :M2], :id) # first pass measure variables and then id-variable
stack(x, [:M1, :M2,:id2], [:id,:M3], variable_name=:key, value_name=:observed)
stack(x, Not([:id, :id2]))
stack(x, Not([1, 2])) # you can use index instead of symbol


x = DataFrame(id = [1,1,1], id2=['a','b','c'], a1 = rand(3), a2 = rand(3))
stack(x)

stack(DataFrame(rand(3,2)))

df = DataFrame(rand(3,2))
df.key = [1,1,1]
mdf = stack(df) # duplicates in key are silently accepted

x = DataFrame(id = [1,1,1], id2=['a','b','c'], a1 = rand(3), a2 = rand(3))

y = stack(x)

unstack(y, :id2, :variable, :value) # stndard unstack with a specified key

unstack(y, :variable, :value) # all other columns are treated as keys

# all columns other than named :variable and :value are treated as keys
unstack(y)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

October-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值