Python实现不同行数DataFrame列间相似值替换
批量替换DataFrame中的门店名称
你需要将包含日期和冗余前缀的门店名称,批量替换为标准门店名,以下是基于Pandas的解决方案:
1. 核心思路
从示例数据可看出,门店名称的核心标识是字母A/B/C/D,不受前缀(如The、Store letter)和后缀日期影响。通过正则提取核心字母,即可生成统一的标准门店名。
2. 代码实现
假设你的原始DataFrame名为df,代码如下:
import pandas as pd import re # 模拟原始数据(实际使用时替换为你的数据源) data = { '门店': [ 'Store A 05/15/21', 'The Store B 04/01/21', 'Store letter B 11/12/21', 'Store C 10/24/21', 'Store D 09/30/21', 'the Store C 05/13/21', 'Store letter D 07/01/21', 'Store letter A 08/29/21' ], '待替换目标值': ['Store A', 'Store B', 'Store C', 'Store D', '', '', '', ''] } df = pd.DataFrame(data) # 定义标准化函数 def standardize_store(name): # 匹配核心字母,忽略大小写 match = re.search(r'Store(?: letter)? ([A-D])', name, flags=re.IGNORECASE) if match: return f'Store {match.group(1).upper()}' return name # 无匹配时保留原名称 # 应用标准化并清理列 df['门店'] = df['门店'].apply(standardize_store) df = df.drop('待替换目标值', axis=1) print(df)
3. 最终输出结果
运行代码后得到的DataFrame如下:
| 门店 |
|---|
| Store A |
| Store B |
| Store B |
| Store C |
| Store D |
| Store C |
| Store D |
| Store A |
4. 大数据量适配说明
该方法基于正则匹配,无需手动维护大量映射字典,可直接适配6000行数据。若存在特殊格式的门店名,只需补充正则规则即可覆盖。
内容的提问来源于stack exchange,提问作者Eduardo
相关产品推荐
相关产品推荐

