Python更改索引数据帧
我有一个看起来像这样的数据框,带有一个多索引列:Python更改索引数据帧,python,pandas,dataframe,Python,Pandas,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 i
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
我试图操纵multindex,但没有成功
有什么想法吗?这里有一种方法
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
使用
可能重复的@gzc我有多索引,因此它不适用于meCheck顶部答案,其中包括多索引转换。在我的原始df中,我的索引没有标题,所以我如何才能像您那样:
dff['B']
?
df.rename_axis([None, 'NEW_TITLE'])