如何从有条件的熊猫系列中删除字符?

时间:2019-09-23 11:20:19

标签: python string pandas series

我有这个系列:

pokemons=pd.Series(['AlakazamMega Alakazam','BlastoiseMega Blastoise','PinsirMega Pinsir'])

我想删除'Mega'之前的重复名称,例如'BlastoiseMega Blastoise'将变成'Mega Blastoise'。我正在处理更大的系列,因此我需要一些通常写的东西。

2 个答案:

答案 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]
相关问题