我有一个如下所示的dataframe,它有一个多索引列:
TITLE1 TITLE2 TITLE3
idx1 idx2 val1 val2 val3
idx3 va11 val2 val3
idx3 va11 val2 val3
idx3 va11 val2 val3
idx2 idx4 val1 val2 val3
idx5 va11 val2 val3
idx6 va11 val2 val3
idx7 va11 val2 val3我想重命名第二个索引的值,并在其中添加一个标题:
NEW_TITLE TITLE1 TITLE2 TITLE3
idx1 new1 val1 val2 val3
new3 va11 val2 val3
new3 va11 val2 val3
new3 va11 val2 val3
idx2 new4 val1 val2 val3
new5 va11 val2 val3
new6 va11 val2 val3
new7 va11 val2 val3我试着操纵多个索引,但没成功。
有什么想法吗?
发布于 2016-12-25 08:13:09
有一种方法
In [93]: df
Out[93]:
TITLE1 TITLE2 TITLE3
A B
idx1 idx2 val1 val2 val3
idx3 va11 val2 val3
idx3 va11 val2 val3
idx3 va11 val2 val3
idx2 idx4 val1 val2 val3
idx5 va11 val2 val3
idx6 va11 val2 val3
idx7 va11 val2 val31级重置索引。
In [94]: dff = df.reset_index(level=1)
In [95]: dff
Out[95]:
B TITLE1 TITLE2 TITLE3
A
idx1 idx2 val1 val2 val3
idx1 idx3 va11 val2 val3
idx1 idx3 va11 val2 val3
idx1 idx3 va11 val2 val3
idx2 idx4 val1 val2 val3
idx2 idx5 va11 val2 val3
idx2 idx6 va11 val2 val3
idx2 idx7 va11 val2 val3替换列中的值。
In [96]: dff['B'] = dff['B'].str.replace('idx', 'new')
In [97]: dff
Out[97]:
B TITLE1 TITLE2 TITLE3
A
idx1 new2 val1 val2 val3
idx1 new3 va11 val2 val3
idx1 new3 va11 val2 val3
idx1 new3 va11 val2 val3
idx2 new4 val1 val2 val3
idx2 new5 va11 val2 val3
idx2 new6 va11 val2 val3
idx2 new7 va11 val2 val3发布于 2016-12-25 09:04:48
使用pd.DataFrame.rename_axis
df.rename_axis([None, 'NEW_TITLE'])

https://stackoverflow.com/questions/41319573
复制相似问题