替换数据框列中的多个字符串

Replacing several strings in a dataframe column

我正在寻找一种简单的方法来替换多个字符串并将其分配给具有更新替换项的新 df

这是我正在使用 df['Column']

的示例列
Column
-----------------
K700E
R957Q
Deletion
L747_T751delinsP
S752_I759del
I491M
D770_P772dup
G719A
G735S
N771_H773dup
K467T
E746_T751insIP
D770_N771insD
G724S
K745_A750del
EGFRvIII
V765A
EGFRvII
L858M

有些条目包含我不需要的文本,基本上需要清理。下面是我的代码,我似乎不太对。

for i in df['Column']:
df['Column'].replace('Truncating Mutations', '9999')
df['Column'].replace('Amplification', '9999')
print(i)

还有一些像

这样的条目
EGFR-RAD51 Fusion

我基本上想删除 'Fusion' 这个词,但保留 'EGFR'。

非常感谢新手的任何建议。 =)

df.replace 不是就地操作。此外,您可以使用 regex=True 并组合前两个替换。第三个也可以跟随,并且更简单,因为你只是删除 Fusion.

df['Column'] = df['Column'].replace('(?:Truncating Mutations)|(?:Amplification)', '9999', regex=True)\
                           .replace('Fusion', '')

执行替换后,您就地分配结果,df['Column'] = ...

备选答案


您还可以传递包含要替换的键和值的字典:

rdict = {
    "Truncating Mutations":"9999", 
    "Amplification":"9999",
    "Fusion":""
    }

df[0] = df[0].replace(rdict)