如何清理pandas数据帧中的索引值?

时间:2017-01-17 15:52:38

标签: python pandas dataframe data-analysis

Abomasnow                   Grass   Ice     494     90  92  75  92  85  60  
AbomasnowMega Abomasnow     Grass   Ice     594     90  132     105 132 105
Abra                    Psychic     Psychic     310     25  20  15  105 55 
Absol                      Dark     Dark    465     65  130     60  75  60  75 
AbsolMega Absol

我有一个像这样的数据框,它有一些脏索引值。例如:我需要将值从AbomasnowMega Abomasnow更改为Mega Abomasnow,并且类似于其他类似事件,即我需要在有Mega字的地方执行此操作。我该怎么做?

1 个答案:

答案 0 :(得分:3)

以下是一个选项,您可以使用带有.str.replace()的正则表达式的.*(?=Mega)方法,它将删除字符串中最后一个 Mega 之前的所有字符,以防您我不熟悉regex.*贪婪地匹配所有字符,?=是预见语法,它直接在Mega前限制匹配模式:

df.index = df.index.str.replace(".*(?=Mega)", "")

df.index
# Index(['Abomasnow', 'Mega Abomasnow', 'Abra', 'Absol', 'Mega Absol'], dtype='object', name=0)