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

标签 python string pandas

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

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

新的挑战由子字符串组成。

假设我有以下数据框:

enter image description here

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

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

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

我将返回以下数据框:

enter image description here

我正在尝试的是以下内容:

enter image description here

我可以在 .values 上添加更多精度来实现此目的吗?

谢谢!

最佳答案

使用 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 - Pandas - 根据其他列中的值替换列中的字符串 - 处理子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60225535/

相关文章:

python - 将多列转换为没有 Pandas 日期的日期时间

python - 如何使用数据框中的散点图数据制作热图?

python - python中的希尔伯特矩阵代码

PHP:如果($Name= ='ProxiedIP')导致 500(内部服务器错误)

MySQL 将字符串 "John Doe"替换为 "John D"

python-2.7 - Pandas 中的长到宽 DataFrame 在新列中具有枢轴列名称

python - 不同库的不同结果和性能

Python 扩展未安装到子包中

string - 使用 Excel(或其他工具)将长文本拆分为 255 个字符的组

python - 使用 Pandas 到 "applymap"并访问索引/列?