You need to enable JavaScript to run this app. Pandas合并两个DataFrame并保留索引,按p列整合a1、a2布尔值
优惠活动
大模型
产品
解决方案
定价
更多

Pandas合并两个DataFrame并保留索引,按p列整合a1、a2布尔值

你需要的是按p列分组后对a1、a2列做逻辑或聚合(只要组内存在至少一个True就返回True),直接用groupby+any即可实现,代码如下:

import pandas as pd
asdf = pd.DataFrame({
    'a1':[True,True,True,False,False],
    'a2':[False,False,False,True,True],
    'p':['p1','p2','p3','p2','p3']
})
# 核心实现代码
res = asdf.groupby('p')[['a1', 'a2']].any()
print(res)

运行后输出完全符合预期:

a1     a2
p               
p1   True  False
p2   True   True
p3   True   True

原方案报错原因说明

你拆分出的tmp1、tmp2都同时保留了a1和a2两列,拼接/合并时同名列会自动加后缀区分,完全不需要拆分原表,直接分组聚合是效率最高、逻辑最清晰的实现方式。

如果需要更灵活的聚合配置,也可以用pivot_table实现,效果完全一致:

res = asdf.pivot_table(index='p', values=['a1', 'a2'], aggfunc='any')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 16:36:04