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

Pandas如何按行统计8.8出现次数生成0/1二元新列

pandas逐行统计特定值新增列实现方案

你可以直接使用pandas内置的向量化方法完成需求,无需编写逐行循环,执行效率更高,完整实现代码如下:

import pandas as pd

# 构造示例数据源
dict1 = {
    'TA': {'MA':8.8,'BA':8.8,'CA':1.3,'DA':1.4,'RA':1.5},
    'GA': {'MA':1.1,'BA':1.2,'CA':8.8,'DA':8.8,'RA':8.8},
    'RA': {'MA':4.1,'BA':5.2,'CA':4.5,'DA':1.8,'RA':1.2},
    'SA': {'MA':9.2,'BA':1.1,'CA':1.3,'DA':8.8,'RA':8.8}
}
df1 = pd.DataFrame.from_dict(dict1, orient="index")

# 核心逻辑:新增New_Column列
df1['New_Column'] = (df1.eq(8.8).sum(axis=1) <= 2).astype(int)

代码逻辑说明

  • df1.eq(8.8):生成与原DataFrame尺寸一致的布尔矩阵,值为8.8的位置返回True,其余位置返回False
  • .sum(axis=1):按行对布尔矩阵求和,Python中布尔值True等价于1、False等价于0,求和结果即为每行中8.8的出现次数
  • <= 2:判断每行8.8的出现次数是否满足「小于等于2」的规则,返回布尔序列
  • .astype(int):将布尔序列转换为整数类型,True转为1、False转为0,完全匹配赋值要求

运行结果验证

执行代码后打印df1,输出结果与规则要求完全匹配:

MA   BA   CA   DA   RA  New_Column
TA  8.8  8.8  1.3  1.4  1.5           1
GA  1.1  1.2  8.8  8.8  8.8           0
RA  4.1  5.2  4.5  1.8  1.2           1
SA  9.2  1.1  1.3  8.8  8.8           1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 00:03:20