Python中如何替换DataFrame分号分隔列中的15、18为21
实现方案
你可以通过对目标列应用自定义转换函数实现需求,核心逻辑是将每个单元格的字符串按分号拆分后逐元素匹配替换,再重新拼接为分号分隔的字符串。
完整代码示例
import pandas as pd # 构造示例DataFrame,你可以自行补充其余3列数据,不影响x列的处理逻辑 df = pd.DataFrame({ 'x': ['20;30', '30;45;64', '15;21', '18;24', '15'] }) # 定义替换规则 replace_map = {'15': '21', '18': '21'} # 处理x列 df['x'] = df['x'].apply(lambda s: ';'.join([replace_map.get(i, i) for i in s.split(';')])) # 验证结果 print(df['x'])
输出结果
执行代码后x列输出和预期完全一致:
0 20;30 1 30;45;64 2 21;21 3 21;24 4 21 Name: x, dtype: object
逻辑说明
- 用
split(';')把每个单元格的字符串拆分为单个数值的字符串列表 - 遍历列表元素,用
replace_map.get(i, i)匹配替换规则,未匹配到的元素保持原值 - 最后用
join方法把处理后的列表重新拼接为分号分隔的字符串 - 若后续需要替换其他数值,仅需修改
replace_map的键值对即可,无需调整其他逻辑
内容的提问来源于stack exchange,提问作者mmmaaraaa
相关产品推荐
相关产品推荐

