如果我有一个简单的数据框:

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

python -  Pandas 在行上设置多索引,然后转置为列-LMLPHP

让我们借用@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 在行上设置多索引,然后转置为列-LMLPHP

关于python - Pandas 在行上设置多索引,然后转置为列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38980714/

10-12 02:21