Заменить строку, взятую из другого столбца, в pandas - PullRequest
1 голос
/ 05 апреля 2020

Я пытаюсь выполнить замену в одном столбце pandas кадра данных, как показано ниже.

С:

a          b
house      ho
cheese     ee
king       ng

Кому:

a        b
use      ho
chse     ee
ki       ng

Я пытаюсь использовать:

df['a'] = df['a'].str.replace(df['b'], "")

, но я получаю TypeError: объекты 'Series' являются изменяемыми, поэтому их нельзя хэшировать

Я сделал это путем итерации строка за строкой через фрейм данных, но его 200 000 строк, поэтому заняло бы часы. Кто-нибудь знает, как я могу сделать эту работу?

1 Ответ

3 голосов
/ 05 апреля 2020

Поскольку производительность важна, здесь возможно использование списка с replace для замены на строки:

df['a'] = [a.replace(b, "") for a, b in df[['a','b']].values]

Другое решение медленнее с DataFrame.apply:

df['a'] = df.apply(lambda x: x.a.replace(x.b, ""), axis=1)

print (df)
      a   b
0   use  ho
1  chse  ee
2    ki  ng
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...