2017-01-17 5 views
1
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'이라는 단어가있는 위치에서이 값을 변경해야합니다. 어떻게해야합니까?팬더 데이터 프레임의 색인 값을 정리하는 방법은 무엇입니까?

답변

3

여기, 당신이 모든 문자 탐욕 regex, .* 경기에 익숙하지 않은 경우에, 당신의 문자열의 마지막 메가 전에 모든 문자를 제거합니다, 당신은 .*(?=Mega)으로, 정규식 .str.replace() 방법을 사용할 수 있습니다 하나 개의 옵션입니다 ?=은 look ahead 문법이며 일치하는 패턴은 직접 앞에 Mega :

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

df.index 
# Index(['Abomasnow', 'Mega Abomasnow', 'Abra', 'Absol', 'Mega Absol'], dtype='object', name=0) 
앞에 있습니다.