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

如何用Pandas统计多列中三类字符串出现次数并生成新列?

跨多列统计符合条件值的次数

问题需求

需要新增Received_money列,统计每行中所有Job列里值为Yes、Partial或paid的出现次数;同时要批量选中15个Job列,无需手动逐个指定列名。

示例数据

import pandas as pd
  
# 初始化数据
data = [['tom', "Yes", "No"], ['nick', "Partial", "Yes"], ['juli', "No", "No"]]
  
# 创建DataFrame
df = pd.DataFrame(data, columns=['Name', 'Job1', 'Job2'])

完整解决方案代码

# 批量筛选所有以Job开头的列
job_cols = df.columns[df.columns.str.startswith('Job')]

# 统计每行符合条件的次数
df['Received_money'] = df[job_cols].isin(['Yes', 'Partial', 'paid']).sum(axis=1)

代码说明

  • 批量选择Job列
    利用df.columns.str.startswith('Job')匹配所有列名以Job开头的列,自动获取全部15个Job列,无需手动罗列Job1至Job15,结果job_cols会包含所有符合条件的列名列表。
  • 扩展统计符合条件的值
    df[job_cols].isin(['Yes', 'Partial', 'paid'])会将每个符合条件的单元格标记为True,不符合的标记为False;再用sum(axis=1)对每行的True值求和(True等价于1,False等价于0),直接得到每行符合条件的次数。

运行结果

NameJob1Job2Received_money
tomYesNo1
nickPartialYes2
juliNoNo0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 00:44:53