我在pandas中有这样的数据
df = DataFrame(np.random.rand(4,5), columns = list('abcde'))
print df
a b c d e
0 0.945686 0.000710 0.909158 0.892892 0.326670
1 0.919359 0.667057 0.462478 0.008204 0.473096
2 0.976163 0.621712 0.208423 0.980471 0.048334
3 0.459039 0.788318 0.309892 0.100539 0.753992
现在我想将此转换为2d数据,将所有列元素折叠为带有标签及其索引的单行
0 a 0.160953
0 b 0.945261
0 c 0.979201
0 d 0.099872
0 e 0.247445
1 a 0.919359
1 b 0.667057
1 c 0.462478
1 d 0.008204
1 d 0.473096
...
...
3 e 0.753992
答案 0 :(得分:2)
df.unstack()
会将列标签移动到索引级别。如果您希望它们作为列而不是索引级别,则可以执行df.unstack().reset_index()
。