Python 将数据从行透视到具有特定结构的列
鉴于以下数据:Python 将数据从行透视到具有特定结构的列,python,pandas,Python,Pandas,鉴于以下数据: var_1 var_2 var_3 0 5.0 7.0 3.0 1 4.0 5.0 10.0 2 4.0 9.0 7.0 3 9.0 10.0 4.0 4 4.0 9.0 3.0 输出应为: var_3 var_4 var_5 var_7 var_9 var_10 0 3 0 1
var_1 var_2 var_3
0 5.0 7.0 3.0
1 4.0 5.0 10.0
2 4.0 9.0 7.0
3 9.0 10.0 4.0
4 4.0 9.0 3.0
输出应为:
var_3 var_4 var_5 var_7 var_9 var_10
0 3 0 1 2 0 0
1 0 1 2 0 0 3
2 0 1 0 3 2 0
3 0 3 0 0 1 2
4 3 1 0 0 2 0
这不是一个典型的轴心,虽然可以使用类似于iterrows
的方法来实现,但我觉得应该有更好的方法
实际情况是,行中的值用于列,列后缀用于单元格值
编辑
这个问题正好有回答它所需的信息-关闭它对我来说没有任何意义,因此请给出一些解释。首先通过
重命名
获取新列名称,对于之后的值,
,取消Pivot by,添加值
以索引为依据,并通过重塑为依据,最后清理一些数据列:
f = lambda x: int(x.split('_')[1])
df = (df.rename(columns=f)
.melt(ignore_index=False)
.set_index('value', append=True)['variable']
.unstack(fill_value=0)
.rename(columns=int)
.add_prefix('var_')
.rename_axis(None, axis=1))
print (df)
var_3 var_4 var_5 var_7 var_9 var_10
0 3 0 1 2 0 0
1 0 1 2 0 0 3
2 0 1 0 3 2 0
3 0 3 0 0 1 2
4 3 1 0 0 2 0
我投票赞成重新开放,因为它被错误地关闭了。