You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中对分类序列实现类似Tableau的法院名称分组归类

法院分类实现方案

方案1:关键词规则匹配(推荐,维护成本最低)

你给出的法院名称都有明显的特征关键词,不需要手动整理全量列表,直接用规则匹配即可,性能和可读性都最优。该方法为向量化运算,即使是百万级以上的数据集也能快速完成计算,远优于逐行判断的apply写法:

import pandas as pd
import numpy as np

# 定义各分类的匹配条件
conditions = [
    # 地区法院:名称包含District Court
    df_combined['Court Name'].str.contains('District Court', case=False),
    # 郡法院:名称包含County Court
    df_combined['Court Name'].str.contains('County Court', case=False),
    # 治安法院:名称以JP开头
    df_combined['Court Name'].str.startswith('JP ', na=False)
]

# 定义条件对应的分类值
choices = ['District', 'County', 'JP']

# 生成分类列,不满足以上条件的默认归类为Other
df_combined['Category'] = np.select(conditions, choices, default='Other')

如果有特殊规则需要调整,比如你想把Probate Court也归到County类,直接在对应条件里加规则即可:

# 调整后的郡法院条件,包含County Court或者Probate Court
df_combined['Court Name'].str.contains('County Court|Probate Court', case=False)

方案2:映射字典法(适合有特殊自定义分类规则的场景)

如果你已经整理好了各个分类的法院名称列表,直接构造映射字典再调用map方法即可:

# 你整理好的分类列表示例
district_courts = ['383rd District Court', '388th District Court', ...]
county_courts = ['County Court at Law 7', 'County Criminal Court 4', ...]
jp_courts = ['JP 6-1', 'JP 6-2', ...]

# 构造映射字典
category_map = {}
for court in district_courts:
    category_map[court] = 'District'
for court in county_courts:
    category_map[court] = 'County'
for court in jp_courts:
    category_map[court] = 'JP'

# 生成分类列,不在字典里的默认赋值为Other
df_combined['Category'] = df_combined['Court Name'].map(category_map).fillna('Other')

结果验证

生成分类列后可以用以下代码验证分类是否正确:

# 查看每个分类对应的法院名称明细,校验是否匹配预期
df_combined.groupby('Category')['Court Name'].unique()

内容的提问来源于stack exchange,提问作者Jacob Meils

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 16:06:02