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

如何在Pandas中实现输入列名列表统计分类频率的函数

实现方案

pandas内置的value_counts方法是经过底层优化的统计接口,完全匹配你的需求,性能远高于自行实现遍历计数,实现代码如下:

import pandas as pd
from typing import List

# 初始化数据集
data = pd.DataFrame({
    'A': ["A", "A", "A", "B", "B", "B", "A", "A", "A", "A", "B"],
    'B': ["C", "D", "C", "C", "D", "C", "C", "D", "D", "C", "D"],
    'C': ["A1", "A2", "A1", "A1", "A2", "A3", "A4", "A2", "A1", "A1", "A2"]
})

def func(cols: List[str]) -> List[int]:
    # value_counts默认按出现频率降序排序,直接转列表即可匹配示例输出
    return data[cols].value_counts(sort=True, ascending=False).tolist()

效果验证

执行测试代码输出完全符合你的示例:

print(func(["A"])) # 输出 [7, 4]
print(func(["A", "B"])) # 输出 [4, 3, 2, 2]

性能说明

该方案基于pandas矢量化操作实现,即使是百万行级别的数据集也能保持很高的执行效率,不需要额外优化。如果不需要按频率排序,可以把sort参数设为False,执行速度会更快,但返回的频率顺序会和分类组合的出现顺序一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:48:06