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

我投票赞成重新开放,因为它被错误地关闭了。