假设我有一个带有分层索引的数据框:
>>> df = pd.DataFrame(np.ones((2, 4)))
>>> df
0 1 2 3
0 1 1 1 1
1 1 1 1 1
[2 rows x 4 columns]
>>> df.columns = pd.MultiIndex.from_product([['a', 'b'], ['i', 'ii']])
>>> df
a b
i ii i ii
0 1 1 1 1
1 1 1 1 1
[2 rows x 4 columns]
有没有一种简单的方法可以更改“b”下的列名称?我认为以下内容很直观,但它不起作用。
>>> df['b'].columns = ['iii', 'iv']
>>> df
a b
i ii i ii
0 1 1 1 1
1 1 1 1 1
[2 rows x 4 columns]
重命名列多索引是有点尴尬的ATM(并且将其重命名为self,它不能很好地处理多索引)。如果它是框架的索引,那么很容易reset_index/rename/set_index
.
所以有 2 个选择:(这在 0.15.0 中也会变得更容易);现在必须设置所有级别,甚至是那些您没有更改的级别。
In [39]: df.columns = df.columns.set_levels([['iii','iv'],df.columns.levels[1]])
In [40]: df
Out[40]:
iii iv
i ii i ii
0 1 1 1 1
1 1 1 1 1
或者最简单的是重新创建并设置新索引(对于所有列)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)