python:重命名多索引数据帧中的单列标签

我有一个df,看起来像这样:

df=pd.DataFrame(np.random.random((4,4)))
df.columns=pd.MultiIndex.from_乘积([‘1’,’2’,[‘A’,’B’]))
打印df
1 2
A B A B
0 0.030626 0.494912 0.364742 0.320088
1 0.178368 0.857469 0.628677 0.705226
2 0.886296 0.833130 0.495135 0.246427
3 0.391352 0.128498 0.162211 0.011254

如何将列“1”和“2”重命名为“1”和“2”

我以为df.rename()会有帮助,但事实并非如此。你不知道怎么做

这确实是rename中缺少的内容(理想情况下,它应该允许您指定级别)。
另一种方法是设置列索引的级别,但您需要知道该级别的所有值:

[41]on

:df.columns.levels[0]
Out[41]:索引([u'1',u'2'],dtype='object')
At[43]on:df.columns=df.columns.set_levels(['one','two'],level=0)
In[44]:df
Output[44]:
12
A B A B
0  0.899686  0.466577  0.867268  0.064329
1  0.162480  0.455039  0.736870  0.759595
2  0.620960  0.922119  0.060141  0.669997
3  0.871107  0.043799  0.080080  0.577421
In[45]:df.columns.levels[0]
Out[45]:索引([u'one',u'two',dtype='object')

发表评论