我有这个系列:
pokemons=pd.Series(['AlakazamMega Alakazam','BlastoiseMega Blastoise','PinsirMega Pinsir'])
我想删除'Mega'之前的重复名称,例如'BlastoiseMega Blastoise'将变成'Mega Blastoise'。我正在处理更大的系列,因此我需要一些通常写的东西。
答案 0 :(得分:4)
使用Series.str.replace
,但仅用于与拆分后的DataFrame的两列相等的值:
pokemons=pd.Series(['AlakazamMega Alakazam',
'BlastoiseMega Blastoise',
'StayITHereMega Blastoise'])
df = pokemons.str.split('Mega\s+', expand=True)
pokemons = pokemons.str.replace(r'^.+(Mega)',r'\1').where(df[0] == df[1], pokemons)
print (pokemons)
0 Mega Alakazam
1 Mega Blastoise
2 StayITHereMega Blastoise
dtype: object
编辑:
如果需要删除Mega
之前的所有值:
pokemons = pokemons.str.replace(r'^.+(Mega)',r'\1')
print (pokemons)
0 Mega Alakazam
1 Mega Blastoise
2 Mega Blastoise
dtype: object
答案 1 :(得分:1)
您可以使用split:
short_pokemons = ['Mega'+poke.split('Mega')[1] for poke in pokemons]