2

我有一个带有“平面”列索引 ['Sample 1', 'Sample 2' ...] 的 pandas DataFrame,并且我构建了一个具有两个级别的 MultiIndex,其中第一个具有与我相同的元素DataFrame 的列索引('Sample 1' ...)。我想用这个 MultiIndex 替换我的 DataFrame 的列索引,MultiIndex 的每个元素都替换具有匹配名称的列索引元素。因此,标题为“样品 1”的列现在应该标题为(“样品 1”,“组 x”),标题为“样品 2”的列现在应该是(“样品 2”,“组 x”),并且等等。

例如,DataFrame 可能如下所示:

         A    B    C
row1     1    2    3
row2     4    5    6
  :
rowN     7    8    9

MultiIndex 看起来像[('A', 'G1'), ('B', 'G1'), ('C', 'G2')]

最终结果如下所示:

        G1   G1   G2
         A    B    C
row1     1    2    3
row2     4    5    6
  :
rowN     7    8    9

似乎这应该是一个简单的连接或匹配连接,但找不到方法(和/或关键字)来做到这一点。

4

1 回答 1

1

只需分配给columns实例属性

In [10]: df = DataFrame(randn(10, 3), columns=list('abc'))

In [11]: df.columns = [list('ABC'), df.columns]

In [12]: df
Out[12]:
       A      B      C
       a      b      c
0  2.320 -1.670  0.511
1  0.350 -1.877  0.627
2  1.671  0.347  1.328
3  0.896 -0.061  0.083
4  1.168  1.212 -1.127
5 -0.015  0.402  0.249
6 -0.576  0.898 -0.464
7 -0.939  0.198 -2.698
8 -0.767  0.532 -0.369
9  0.365  0.293 -0.676

In [13]: df.columns
Out[13]:
MultiIndex
[(u'A', u'a'), (u'B', u'b'), (u'C', u'c')]
于 2013-08-19T23:05:27.330 回答