pd.melt() vs reshape2::melt()

32 篇文章 1 订阅

有的时候将DataFrame中的多列数据变层两列和三列数据进行画图,这种操作称为melt, 在R和python中都有实现,记录如下

R将两列合并成一列

df=data.frame(v1=c(1,2,3),v2=c("2","2","100"))
df
reshape2::melt(df,id.vars=NULL)

结果如下
在这里插入图片描述

python将两列合并成一列

在这里插入图片描述

R将多列数据合并成三列

samplesize=c(1000,2000,5000,10000,20000,40000,50000,100000,300000,500000,1000000,1300000)
methods=c("DESC","DESC_GPU","DESC_multicpu","scVI","scVI_GPU","scVI_multicpu","Seurat3.0")

f_mem=function(x){
  t1= x/100000
  t2 =x/110000
  t3= x/200000
  t4= x/140000
  t2 =x/500000
  t5 =x/400000
  t6= x/90000
  t7= x/20000
  
  mem =data.frame(samplesize=samplesize,t1=t1,t2=t2,t3=t3,t4=t4,t5=t5,t6=t6,t7=t7)
  colnames(mem)=c("samplesize",methods)
  return(mem)
}


mem_df =f_mem(samplesize)
write.csv(mem_df,file="./mem_df.csv")

mem_df
mem_final=reshape2::melt(mem_df,id.var="samplesize")
mem_final

结果如下
在这里插入图片描述

python将多列数据合并成三列

mem_df=pd.read_csv("./mem_df.csv",index_col=0)
mem_df

mem_final=pd.melt(mem_df,id_vars="samplesize")

结果如下
在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值