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

如何在pandas中编写支持多分组列的批量交叉表生成函数

交叉表函数适配多分组列解决方案

核心修改点

1. 兼容两类入参格式

统一处理入参tabs的类型:单字符串(单列分组)自动转为列表格式,和多列列表入参走同一套处理逻辑。

2. 修正列过滤逻辑

用列名差集替代原有的不等于判断,适配多分组列的过滤需求。

3. 适配pd.crosstab传参规则

行分组参数直接传入多列切片,无需额外嵌套列表,单/多列场景都可以正常识别。


完整修改后代码

def cts(tabs, df):
    out=[]
    # 统一入参格式为列表
    tabs = [tabs] if isinstance(tabs, str) else tabs
    # 取非分组列
    target_cols = df.columns.difference(tabs)
    for col in target_cols:
        a = pd.crosstab(index=df[tabs], columns=df[col])
        out.append(a)
    return out

调用测试

单分组列调用(兼容原有写法)

# 按group列分组生成交叉表,和原有调用逻辑完全一致
res_single = cts('group', df)

多分组列调用(新增支持场景)

# 按group、class两个列分组生成交叉表,符合需求场景
res_multi = cts(['group', 'class'], df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:24:02