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

如何基于名称合并pandas DataFrame行并标记所属分组为布尔值

pandas 分组布尔标记转换实现方案

以下是直接可用的实现代码:
首先导入依赖并构造测试数据:

import pandas as pd

# 构造示例原表,实际使用时替换为你自己的DataFrame即可
df = pd.DataFrame({
    "name": ["James", "Mike", "Tod", "Rico", "Billie", "Mike", "Tod"],
    "group": [1, 2, 1, 2, 3, 3, 2]
})

方法1:独热编码+分组聚合

# 生成group字段的独热编码,再按name聚合,只要出现过对应group就标记为True
result = pd.get_dummies(df, columns=["group"], prefix="in_group")\
         .groupby("name", as_index=False)\
         .any()

方法2:交叉表转换

# 用交叉表统计出现次数后转布尔值,再重命名列
result = pd.crosstab(df["name"], df["group"]).astype(bool).reset_index()
result.columns = ["name"] + [f"in_group_{col}" for col in result.columns[1:]]

两种方法输出的结果完全符合需求,每一行对应唯一姓名,in_group_*列会根据该姓名是否出现在对应分组自动标记True/False。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:30:03