pandas - Pandas DataFrame .replace() 仅替换字符串开头的子字符串
问题描述
我想在整个数据框中替换子字符串的所有实例。如果我一次做一个子字符串,它会起作用:
tdf = pd.DataFrame([{'X':'abc','Y':'def','Z':'ghi'},
{'X':'abc2','Y':'def2','Z':'ghi2'}],index = [0,1])
In: tdf
Out:
X Y Z
0 abc def ghi
1 abc2 def2 ghi2
In: tdf.replace('e','2',regex=True)
Out:
X Y Z
0 abc d2f ghi
1 abc2 d2f2 ghi2
但是如果我使用两个匹配的列表(我有很多子字符串要替换),我似乎只能替换字符串开头的子字符串:
In:tdf.replace(['e','a'],['1','2'],regex=True)
Out:
X Y Z
0 2bc def ghi
1 2bc2 def2 ghi2
如何在一行中的任何地方用它们各自的值替换所有子字符串?
熊猫版本'0.24.1'
解决方案
你可以通过dict
:
tdf=tdf.replace(dict(zip(['e','a'],['1','2'])),regex=True)
X Y Z
0 2bc d1f ghi
1 2bc2 d1f2 ghi2
推荐阅读
- react-native - Google Cloud Vision API 获取提取文本的密钥
- android - NativeScript + Angular RadDataForm 表单源初始化问题
- php - 正确形成 API 响应
- javascript - Typescript 文件在 vs2017 中自动创建 Javascript,无需 tsconfig.json 全局项目级别
- r - 获取嵌套映射函数的标准 purrr 父变量
- javascript - 从Angular中的textarea复制到剪贴板
- rust - 如何在库中实现长寿命变量/状态?
- mongodb - 在 Mac OS 上启动 MongoDB 失败
- reactjs - 无法在 ReactJS 中获取本地 IP 地址
- flutter - Flutter:异常:类型'(动态,动态,动态)=> void'不是'f'类型'(字符串,动态)=> void'的子类型