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

如何在保留Pandas DataFrame结构的前提下计算列总和?

问题描述

我有一个DataFrame示例如下:

df = pd.DataFrame([[1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1], [0, 0, 0, 0]], columns = ["CHAP1SEC1", "CHAP1SEC2", "CHAP1SEC3", "CHAP1SEC4", "CHAP1SEC5"], index = [0, 1, 2, 3])

注:变量为二进制类型。

我想要将这4行合并为1行,保留列中的非零值。由于变量是二进制,我尝试使用df.sum(axis = 1)计算列总和,虽得到所需数值,但输出不符合原DataFrame结构,希望得到保持原结构的结果,求简洁解法。

解法

因为变量是二进制类型,只需按列聚合取最大值(或求和),再转换为DataFrame即可保留原结构:

方法1:按列求和转DataFrame

result = df.sum(axis=0).to_frame().T

方法2:按列取最大值转DataFrame

result = df.max(axis=0).to_frame().T

两种方法效果完全一致——只要列中存在1,结果就为1;全0列结果为0,最终输出的result和原DataFrame列结构完全相同,仅保留一行聚合后的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 11:39:47