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

如何使用Pandas按列名子串合并列并执行OR逻辑运算?

实现按列名子串分组合并(OR逻辑)

嘿,这个需求用Pandas的分组功能就能轻松解决,我给你一步步演示怎么操作:

首先,先把你的示例数据构造出来,方便你直接验证代码:

import pandas as pd

# 构造你给出的示例数据
data = {
    'first_RG7509': [1],
    'first_YY6124': [0],
    'last_YY6124': [1],
    'first_WE4818': [1],
    'first_AA7542': [0],
    'last_RG7509': [0]
}
dfin = pd.DataFrame(data)

接下来是核心操作:我们需要按列名拆分后的第二个子串作为分组依据,然后对每组的列应用OR逻辑(只要组内有一个1,结果就为1)。因为你的值是0/1,用max()函数就能完美实现OR的效果(取组内最大值,有1就返回1):

# 从列名中提取分组标识(比如RG7509、YY6124这些)
group_ids = dfin.columns.str.split("_").str[1]

# 按分组标识对列进行分组,用max实现OR合并
output_df = dfin.groupby(group_ids, axis=1).max()

运行这段代码后,你得到的output_df就是你想要的结果:

RG7509  YY6124  WE4818  AA7542
0       1       1       1       0

补充说明

如果你的数据里是布尔值(True/False),或者想更明确地体现OR逻辑,也可以用any()方法再转成整数:

output_df = dfin.groupby(group_ids, axis=1).any().astype(int)

效果和用max()完全一致,选哪种看你的习惯就好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:41:35