[英]Replace whole string which contains substring in whole dataframe in pandas
我想替换包含特定子字符串的所有字符串。 例如,如果我有这个数据框:
import pandas as pd
df = pd.DataFrame({'col_1': ['abc', 'abc123', 'abc456'],
'col_2': ['abc123', '123', 'abc456']})
我想用字符串 'test' 替换包含'abc123'
的字符串,如下所示:
df = pd.DataFrame({'col_1': ['abc', 'test', 'abc456'],
'col_2': ['test', '123', 'abc456']})
我试过了:
df.loc[df['col_1'].str.contains('abc123',na=False), 'col_1'] = 'test'
但它每次只能处理一个 col,我要处理数百个 col。 我怎么能一次性做到。
请注意,我将示例更改为包含zzabc123zz
因为您在问题中提到了“子字符串”,但您提供的示例并未显示该用例。
您可以将df.replace
与正则表达式一起使用。
import pandas as pd
import re
df = pd.DataFrame({'col_1': ['abc', 'abc123', 'abc456'],
'col_2': ['abc123', '123', 'zzabc123zz']})
df.replace(re.compile('.*abc123.*'), 'test', inplace=True)
print(df)
输出
col_1 col_2
0 abc test
1 test 123
2 abc456 test
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.