我有一个看起来像这样的数据框,带有一个多索引列:
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
我试图操纵多索引但它没有用。
请问任何想法?
答案 0 :(得分:1)
这是一种方式
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 val3
重置1级的索引。
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
答案 1 :(得分:1)