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

Python Pandas多字段分组统计:排除历史已出现投资者的唯一值计数

解决方法

实现思路

  • 先按ID分组,标记出每个投资者在对应ID下是否为首次出现,过滤掉非首次出现的投资者记录
  • 再对过滤后的结果按ID和Round分组,统计投资者数量即可得到每轮次的新增唯一投资者数

完整代码示例

import pandas as pd

# 构造测试数据
data = {
    'ID': ['X','X','X','X','Y','Y','Y','Y','Y'],
    'Round': [1,2,2,3,1,1,1,2,2],
    'Investor': ['A','A','B','A','A','B','C','B','D']
}
df = pd.DataFrame(data)

# 筛选每个ID下首次出现的投资者记录
df_first = df[~df.groupby('ID')['Investor'].duplicated()]

# 按ID、Round分组统计新增投资者数量
result = df_first.groupby(['ID', 'Round'])['Investor'].count()
print(result)

输出结果

ID  Round
X   1        1
    2        1
Y   1        3
    2        1
Name: Investor, dtype: int64

输出完全符合需求:X的第1轮新增1个投资者A,第2轮新增1个投资者B,第3轮没有新增投资者;Y的第1轮新增3个投资者A、B、C,第2轮新增1个投资者D。

如果需要保留所有ID+Round的组合,没有新增投资者的轮次展示为0,可以在统计后补充如下代码:

all_index = pd.MultiIndex.from_product([df['ID'].unique(), df['Round'].unique()], names=['ID', 'Round'])
result = result.reindex(all_index, fill_value=0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:24:03