来自 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/