熊猫:使用正则表达式选择性替换(基于不同列的过滤器)

2022-12-01 04:39:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个数据帧中有两列: 类型(分类)、名称(对象) 我怎样做下面的操作

我想更新/替换名称列数据,以便删除特殊字符:re.sub(r'[^\w]','',s) 仅适用于类型为'Attribute'的行


1条回答
网友
1楼 · 发布于 2022-12-01 04:39:36

不确定要删除哪些字符,所以可能需要使用正则表达式,但这样做有效吗

import pandas as pd

df.loc[df['Type']=='Attribute', 'name'] = df.loc[df['Type']=='Attribute', 'name'].str.replace(r'[^\w]', '')

即,将df.loc与布尔过滤器一起使用

df['Type'] == 'Attribute'

用于行和列名

`name`

并使用Series.str.replace为其指定新值