首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >沿一列从长到宽重塑DataFrame

沿一列从长到宽重塑DataFrame
EN

Stack Overflow用户
提问于 2019-03-27 08:16:01
回答 1查看 48关注 0票数 2

我正在寻找一种将下面的表A显示重新配置为表B的方法。

表A:

代码语言:javascript
复制
type   x1  x2  x3  
A      4   6   9  
A      7   4   1  
A      9   6   2   
B      1   3   8  
B      2   7   9

转换为表B:

代码语言:javascript
复制
type   x1  x2  x3  x1'  x2'  x3'  x1'' x2'' x3''  
A      4    6   9   7    4   1    9     6   2  
B      1    3   8   2    7   9   NA     NA  NA

实际的表A有超过150000行和36列。具有2100个唯一的“类型”值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-27 08:23:01

您可以适当地设置索引,然后使用unstack

代码语言:javascript
复制
df

  type  x1  x2  x3
0    A   4   6   9
1    A   7   4   1
2    A   9   6   2
3    B   1   3   8
4    B   2   7   9

res = (df.set_index(['type', df.groupby('type').cumcount()])
         .unstack()
         .sort_index(level=-1, axis=1))

res.columns = res.columns.map(lambda x: x[0] + "'" * int(x[1]))    
res
       x1   x2   x3  x1'  x2'  x3'  x1''  x2''  x3''
type                                                
A     4.0  6.0  9.0  7.0  4.0  1.0   9.0   6.0   2.0
B     1.0  3.0  8.0  2.0  7.0  9.0   NaN   NaN   NaN
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55367996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档