Python - Pandas - Заменить строку из столбца на основе значения из другого столбца - Работа с подстроками - PullRequest
1 голос
/ 14 февраля 2020

Исходя из следующего поста: Python - Pandas - Заменить строку из столбца на основе значения из другого столбца

Я делал кое-что похожее со своей стороны и я столкнулся с новыми проблемами. Я использую тот же пример, что и в предыдущем посте.

Новый вызов, состоящий из подстрок.

Представьте, что у меня есть следующий фрейм данных:

enter image description here

Я пытаюсь заменить на col2 значения, существующие на col0, на значения из col2.

Если я использую код (такой же, как и в предыдущем post):

df['col3'] = df['col1'].replace(df['col0'].values, df['col2'].values, regex = True)

Я верну следующий фрейм данных:

enter image description here

И я пытаюсь сделать следующее:

enter image description here

Могу ли я повысить точность значений .value для достижения этого?

Спасибо!

1 Ответ

1 голос
/ 14 февраля 2020

Используйте re.sub с заменой на строки в DataFrame.apply:

import re

df['col3'] = df.apply(lambda x: re.sub(x['col0'],x['col2'],x['col1']), axis=1)

Или в понимании списка:

df['col3'] = [re.sub(a,c,b) for a,b,c in df[['col0','col1','col2']].to_numpy()]

print (df)
        col0                  col1     col2                col3
0    Table 1    Tablename: Table 1  Table A  Tablename: Table A
1    Table 2    Tablename: Table 2  Table B  Tablename: Table B
2  Table 2_1  Tablename: Table 2_1  Table C  Tablename: Table C
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...