You need to enable JavaScript to run this app. 如何按列名小数点前的数字合并Pandas DataFrame布尔列
优惠活动
大模型
产品
解决方案
定价
更多

如何按列名小数点前的数字合并Pandas DataFrame布尔列

实现方法

你可以通过 Pandas 按列分组 + 按行取布尔值any的方式实现需求,核心逻辑是把列名小数点前的部分作为分组键,同一分组内每行只要存在一个True,合并后的值就为True。

完整代码示例

import pandas as pd
array = {'25.2': [False, True, False], '25.4': [False, False, True], '27.78': [True, False, True]}
df = pd.DataFrame(array)

# 按列名小数点前的整数分组,每组按行取any得到合并结果
df_new = df.groupby(lambda col: col.split('.')[0], axis=1).any()

# 输出结果验证
print(df_new)

代码说明

  • lambda col: col.split('.')[0]:遍历所有列名,按.分割后取前半部分作为分组标识
  • axis=1:指定按列维度进行分组
  • .any():对同分组内的多列数据,逐行判断是否至少有一个True,返回最终布尔值

如果你的列名是数值类型而非字符串,可以调整分组逻辑先做类型转换:

df_new = df.groupby(lambda col: str(col).split('.')[0], axis=1).any()

运行后得到的df_new就是你需要的结果:

25     27
0  False   True
1   True  False
2   True   True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 00:42:02