我有一个有 1 列的 df

     List 
 0   What are you trying to achieve 
 1   What is your purpose right here 
 2   When students don’t have a proper foundation 
 3   I am going to DESCRIBE a sunset 

我有其他数据框 df2

它有 2 列

    original       correct 
0     are          were 
1     sunset       sunrise 
2     I            we 
3     right        correct 
4     is           was 

我想在我的 df 中替换这些词,它出现在我的 df2 的 original 列中 并替换为 correct 列中的相应单词。 并将新字符串存储在其他数据帧 df_new

是否可以不使用循环和迭代,只使用普通的 pandas 概念?

即我的 df_new 应该包含。

     List 
 0   What were you trying to achieve 
 1   What was your purpose correct here 
 2   When students don’t have a proper foundation 
 3   we am going to DESCRIBE a sunrise 

这只是一个测试例子, 我的 df 可能包含数百万行字符串,所以我的 df2, 我可以继续的最有效的解决方案路径是什么?

请您参考如下方法:

许多可能的解决方案之一:

In [371]: boundary = r'\b' 
     ...: 
     ...: df.List.replace((boundary + df2.orignal + boundary).values.tolist(), 
     ...:                 df2.correct.values.tolist(), 
     ...:                 regex=True) 
     ...: 
Out[371]: 
0                  What were you trying to achieve 
1               What was your purpose correct here 
2     When students don’t have a proper foundation 
3                we am going to DESCRIBE a sunrise 
Name: List, dtype: object 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

python - 在 python 中以相反的顺序柯里化(Currying)