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

如何按指定列的取值出现次数将DataFrame拆分为两个?

Pandas 拆分DataFrame实现方案

你可以通过分组计数加筛选的逻辑完成需求,以下是两种可行的实现方式:

方式1:transform计数法(大数据量下性能更优)

import pandas as pd

# 构造示例数据,实际使用时替换为你自己的DataFrame即可
df = pd.DataFrame({
    "Project_Number": ["S100", "S100", "S200", "S300", "S300", "S300", "S400"],
    "Indication": ["X", "Y", "Z", "P", "Q", "R", "S"]
})

# 统计每个Project_Number对应的总记录数,标记到每行
df['cnt'] = df.groupby('Project_Number')['Project_Number'].transform('count')

# 按规则拆分
df1 = df[df['cnt'] > 1].drop(columns='cnt').reset_index(drop=True)
df2 = df[df['cnt'] == 1].drop(columns='cnt').reset_index(drop=True)

方式2:groupby filter写法(代码更简洁)

不需要新增临时计数列,直接通过分组过滤实现:

df1 = df.groupby('Project_Number').filter(lambda group: len(group) > 1).reset_index(drop=True)
df2 = df.groupby('Project_Number').filter(lambda group: len(group) == 1).reset_index(drop=True)

两种方式运行后得到的df1和df2完全符合你给出的预期输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:36:05