python - 根据 pandas 中的其他列内容对列进行操作

标签 python string python-3.x pandas dataframe

来自 R,我无法弄清楚如何通过利用其他列对一个数据帧列进行某种矢量化操作,例如:

import pandas as pd
df = pd.DataFrame({'s':['Big bear eats cat','cute cat sleeps'],'a':['bear','cat']})

现在我只想用 ANIMAL 逐行替换(其他操作可以拆分) s 中 a 的出现,所以它看起来像这样:

0    Big ANIMAL eats cat
1    cute ANIMAL sleeps

在 R data.table (带有向量化函数)中,我会写类似的内容

df[,s:=str_replace(s,a,"ANIMAL")]

我看到我也许可以使用 apply,但对于如此简单的情况来说,这仍然显得非常复杂

最佳答案

您可以使用列表理解:

df['s'] = [' '.join([i if i!=a else 'ANIMAL' for i in s.split()]) \
           for a, s in zip(df['a'], df['s'])]

print(df)

      a                    s
0  bear  Big ANIMAL eats cat
1   cat   cute ANIMAL sleeps

关于python - 根据 pandas 中的其他列内容对列进行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51741865/

相关文章:

python - 当两列相似时替换它们

当我传递 2 个参数时,Python 要求 3 个参数;当我传递 3 个参数时,Python 要求 2 个参数

python - Django CMS错误: modules are not found despite being installed

java - 什么时候在java中对字符串进行垃圾收集

asp.net - DB 中的 Oracle 字符串大于 UI 中的

Python - 两个字符串之间的区别

python - 使用私有(private)成员对类进行子类化

python - Physik Instrumente 的 PI Python 库

python - 从源代码安装 python3.5 后如何修复 virtualenv 的 python pip 段错误(核心转储)响应

python - 从一个列表创建可变长度的列表