我有一个包含法语单词、结尾和新结尾的数据框。我想创建一个第4列,其中有替代词:

word   |ending|new ending|what i want|
--------------------------------------
placer |cer   |ceras     |placeras   |
placer |cer   |cerait    |placerait  |
placer |cer   |ceront    |placeront  |
finir  |ir    |iras      |finiras    |

所以基本上,在第1栏,用第3栏的内容替换第2栏中的等价内容。
有什么想法吗?

最佳答案

使用apply()

df['new_word'] = df.apply(
    lambda row: row['word'].replace(row['ending'], row['new ending']),
    axis=1
)
#     word ending new ending   new_word
#0  placer    cer      ceras   placeras
#1  placer    cer     cerait  placerait
#2  placer    cer     ceront  placeront
#3   finir     ir       iras    finiras

正如@jpp所指出的,这种方法的一个警告是,如果结尾出现在字符串的中间,那么它将无法正常工作。
在这种情况下,请参阅this post了解如何替换字符串末尾。

10-08 08:43