Pandas DataFrame .replace () заменяет только подстроку в начале строки - PullRequest
0 голосов
/ 22 апреля 2020

Я хочу заменить все экземпляры подстроки в кадре данных. Если я делаю одну подстроку за раз, она работает:

tdf = pd.DataFrame([{'X':'abc','Y':'def','Z':'ghi'},
                {'X':'abc2','Y':'def2','Z':'ghi2'}],index = [0,1])
In: tdf
Out: 
      X     Y     Z
0   abc   def   ghi
1  abc2  def2  ghi2

In: tdf.replace('e','2',regex=True)
Out: 
      X     Y     Z
0   abc   d2f   ghi
1  abc2  d2f2  ghi2

Но если я использую два совпавших списка (у меня есть много подстрок для замены), мне кажется, что я могу заменить только подстроки в начало строки:

In:tdf.replace(['e','a'],['1','2'],regex=True)
Out: 
      X     Y     Z
0   2bc   def   ghi
1  2bc2  def2  ghi2

Как заменить все подстроки соответствующими значениями в одной строке?

pandas версия '0.24.1'

1 Ответ

0 голосов
/ 22 апреля 2020

IIU C, проход dict

tdf=tdf.replace(dict(zip(['e','a'],['1','2'])),regex=True)
      X     Y     Z
0   2bc   d1f   ghi
1  2bc2  d1f2  ghi2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...