Python 替换dataframe列中的多个字符串

Python 替换dataframe列中的多个字符串,python,pandas,dataframe,data-cleaning,Python,Pandas,Dataframe,Data Cleaning,我正在寻找一种简单的方法来替换几个字符串,并用更新的替换项将其分配给一个新的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 V7

我正在寻找一种简单的方法来替换几个字符串,并用更新的替换项将其分配给一个新的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
我基本上想删除“融合”一词,但保留“EGFR”


新手对任何建议都非常感激。=)

df.replace
不是就地操作。此外,还可以使用
regex=True
并组合前两个替换。第三种方法也可以遵循,而且更简单,因为您只需删除
Fusion

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

执行替换后,使用
df['Column']=…
将结果分配到原位

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)
备选答案


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

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

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

请详细说明?为什么你不能把它做好?错误是什么?只有第一行代码有效。因此,如果你看到这两行,df['Column'].replace('Truncating Mutations','9999')是唯一给出结果的。谢谢请详细说明?为什么你不能把它做好?错误是什么?只有第一行代码有效。因此,如果你看到这两行,df['Column'].replace('Truncating Mutations','9999')是唯一给出结果的。谢谢那工作,也很简单。让我再测试一下,然后再告诉你,这项工作也很简单。让我再测试一下,然后再给你回复