如果我有一个简单的数据框:
print(a)
one two three
0 A 1 a
1 A 2 b
2 B 1 c
3 B 2 d
4 C 1 e
5 C 2 f
我可以通过发出以下命令轻松地在行上创建多索引:
a.set_index(['one', 'two'])
three
one two
A 1 a
2 b
B 1 c
2 d
C 1 e
2 f
有没有类似的简单方法可以在列上创建多索引?
我想结束于:
one A B C
two 1 2 1 2 1 2
0 a b c d e f
在这种情况下,创建行多索引然后转置它会非常简单,但是在其他示例中,我将要在行和列上都创建多索引。
最佳答案
是的!这就是所谓的换位。
a.set_index(['one', 'two']).T
让我们借用@ragesz的帖子,因为他们使用了一个更好的示例进行演示。
df = pd.DataFrame({'a':['foo_0', 'bar_0', 1, 2, 3], 'b':['foo_0', 'bar_1', 11, 12, 13],
'c':['foo_1', 'bar_0', 21, 22, 23], 'd':['foo_1', 'bar_1', 31, 32, 33]})
df.T.set_index([0, 1]).T
关于python - Pandas 在行上设置多索引,然后转置为列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38980714/