Python 替换dataframe列中的多个字符串
我正在寻找一种简单的方法来替换几个字符串,并用更新的替换项将其分配给一个新的df 这是我正在使用df['column']的示例列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
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')是唯一给出结果的。谢谢那工作,也很简单。让我再测试一下,然后再告诉你,这项工作也很简单。让我再测试一下,然后再给你回复