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

Pandas如何将groupby分组键转为带计数值的字典并提取值数组

Pandas分组计数转字典与数组提取方法

生成分组键对应计数的字典

你代码中已经通过groupby().size()得到了存储分组计数的group_size对象,这是一个Pandas Series结构,不需要手动遍历分组键拼接字典,直接调用内置方法即可完成转换:

import pandas as pd

original_df = pd.read_csv('NewDatasetTotal4.csv')
target_col = 'original_class'
# 计算每个类别的样本数量,返回索引为类别名、值为对应计数的Series
group_size = original_df.groupby(target_col).size()

# 方式1:直接转成 类别名:计数 格式的字典,后续可直接遍历取值
class_count_dict = group_size.to_dict()

# 方式2:如果需要你注释中提到的 xxx_size 格式的键名,用字典推导式处理即可
class_count_dict_renamed = {f"{class_name}_size": count for class_name, count in group_size.items()}

转换完成后直接遍历字典就能拿到每个键对应的计数值:

for k, v in class_count_dict.items():
    print(f"类别 {k} 的样本数为 {v}")

注意事项:

  • 你代码中original_df = original_df.astype(str)这一步对分组计数没有实际作用,可以删掉避免不必要的性能消耗。
  • 你注释中写的sheep_size = 2是手动标注的示例值,实际运行代码会按导入CSV的真实数据自动统计每个类别的计数,不需要手动给单个变量赋值。

提取计数值为列表/数组

要得到类似[5, 3, 7, 7, 2]格式的纯计数值集合,直接从group_size对象中提取值即可:

# 转成原生Python列表
count_list = list(group_size.values)

# 如果需要numpy数组格式做后续数值计算,直接取.values属性即可
count_array = group_size.values

注意:Pandas的groupby默认会对分组键按字典序排序,输出的计数顺序和类别名的排序结果一一对应。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 02:15:41