为了账号安全,请及时绑定邮箱和手机立即绑定

沿一列从长到宽重塑 DataFrame

沿一列从长到宽重塑 DataFrame

慕盖茨4494581 2021-12-17 14:40:51
我正在寻找一种将下面的表 A 显示重新配置为表 B 的方法。表一: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: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 个独特的“类型”值。
查看完整描述

1 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

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


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


查看完整回答
反对 回复 2021-12-17
  • 1 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号