我有一个带有“平面”列索引的pandas DataFrame,['Sample 1','Sample 2'...],我构建了一个具有两个级别的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
似乎这应该是一个简单的连接或匹配连接,但找不到方法(和/或关键字)来做它。
答案 0 :(得分: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')]