如何修改DataFrame指定列的字符串值,删除指定片段替换为目标内容
实现方法
你可以用Pandas的两种常用方案实现需求,示例如下:
方案1:条件匹配赋值
这种方法逻辑清晰,易于理解:
import pandas as pd # 替换包含john:k_的id值为john df.loc[df['id'].str.contains('john:k_', na=False), 'id'] = 'john' # 替换包含mark:k_的id值为mark df.loc[df['id'].str.contains('mark:k_', na=False), 'id'] = 'mark'
参数说明:na=False是为了避免id列存在空值时匹配报错,没有空值可以省略。
方案2:正则replace一步替换
代码更简洁,适合多替换规则的场景:
df['id'] = df['id'].replace({ r'.*john:k_.*': 'john', r'.*mark:k_.*': 'mark' }, regex=True)
正则说明:.*匹配目标子串前后的任意字符,只要id值包含对应子串就会被整串替换为指定值。
运行以上任意一种方案后,输出的df就和你期望的结果完全一致。
内容的提问来源于stack exchange,提问作者french_fries
相关产品推荐
相关产品推荐

