Pandas统计DataFrame唯一值时忽略大小写及模糊匹配同类项的方法
Pandas同类值统计功能实现(大小写不敏感+包含关键词归类)
实现思路
- 先定义所有标准分类的集合,覆盖你需要归并的所有目标类别
- 编写映射函数:将
value列的每个值统一转为小写,判断是否包含某标准分类的小写形式,匹配成功就返回对应标准分类名 - 对映射后的分类字段做分组计数,得到最终统计结果
完整实现代码
import pandas as pd d = {'host_id': [1, 1, 1, 2, 2, 3, 3, 3, 3], 'value': ['Hot Water', 'Wifi', 'Kitchen', 'Wifi', 'Hot Water', 'Coffe Maker', 'wifi', 'hot Water', 'Wifi 230 mb/s']} df = pd.DataFrame(data=d) # 定义标准分类集合 standard_cats = ["Hot Water", "Wifi", "Kitchen", "Coffe Maker"] # 自定义映射规则 def map_to_standard(val): val_lower = val.lower() for cat in standard_cats: if cat.lower() in val_lower: return cat # 未匹配到的分类保留原值,可根据需求调整逻辑 return val # 生成映射后的分类列 df['standard_value'] = df['value'].apply(map_to_standard) # 分组统计 result = df.groupby('standard_value', as_index=False).size().rename(columns={'standard_value':'value', 'size':'count'}) print(result)
输出结果
value count 0 Coffe Maker 1 1 Hot Water 3 2 Kitchen 1 3 Wifi 4
如果需要调整分类的展示顺序,可以自行对结果表做排序处理。
内容的提问来源于stack exchange,提问作者Test
相关产品推荐
相关产品推荐

