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

求助:Python DataFrame分组后不同值计数实现方法

Pandas DataFrame分组计数解决方案

问题分析

你当前的代码存在两个核心问题:

  1. df1['Model'].nunique()计算的是整个DataFrame的Model唯一值数量,而非分组后每组的数量
  2. df2['Model'].map(df1['Type'].value_counts())关联的是全局的Type计数,不是分组内的对应计数

正确实现代码

假设你是按某列(比如Group,替换为你实际的分组列名)进行分组,想要得到每组的Model唯一值数量,以及每组内各Type的出现次数,代码如下:

import pandas as pd

# 1. 按目标列分组(替换'Group'为你的实际分组列名)
grouped = df1.groupby('Group')

# 2. 统计每组的Model唯一值数量,并重命名列
unique_model_count = grouped['Model'].nunique().rename('Unique_Models')

# 3. 统计每组内各Type的出现次数,转为宽格式(Type作为列,计数为值)
type_count = grouped['Type'].value_counts().unstack(fill_value=0)

# 4. 合并结果得到目标DataFrame
df2 = pd.concat([unique_model_count, type_count], axis=1)

代码说明

  • groupby('Group'):指定分组依据的列,确保所有统计都是基于每组独立计算
  • nunique():精准统计每组内Model的唯一值数量,避免全局统计的错误
  • value_counts().unstack(fill_value=0):将每组内Type的计数从长格式转为宽格式,缺失的Type自动填充0,适配常见的目标格式需求
  • concat:将两个统计结果按列合并,得到结构化的最终数据

如果你的分组逻辑是基于多列,只需将groupby的参数替换为对应的分组键列表即可(比如groupby(['Col1', 'Col2']))。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 17:25:03