基于以下帖子:
Python - Pandas - Replace a string from a column based on the value from other column

我在做类似的事情,但面临新的挑战。我使用与上一篇文章相同的示例。

包含子字符串的新挑战。

假设我有以下数据框:

python - Python- Pandas -根据其他列的值替换列中的字符串-处理子字符串-LMLPHP

我正在尝试用col2中的值替换col2上存在的值。

如果我使用代码(与上一篇文章相同):

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


我将返回以下数据框:

python - Python- Pandas -根据其他列的值替换列中的字符串-处理子字符串-LMLPHP

我正在尝试的是以下之一:

python - Python- Pandas -根据其他列的值替换列中的字符串-处理子字符串-LMLPHP

我可以在.value上增加一些精度来实现这一点吗?

谢谢!

最佳答案

使用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

关于python - Python- Pandas -根据其他列的值替换列中的字符串-处理子字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60225535/

10-11 23:22
查看更多