我有一个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')