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

pandas DataFrame多列映射字典按>=条件判断生成yes/no新列的方法

可行实现方案

pandas的ge()方法本身支持按列匹配不同阈值,只需要将阈值字典转为对应列的Series传入即可,完整代码如下:

import pandas as pd

# 示例数据
dfdict = {'col1': [1,2,3], 'col2':[2,3,4], 'col3': [3.2, 4.2, 7.7]}
checkdict = {'col1': 2, 'col2': 3, 'col3': 1.5}
df = pd.DataFrame(dfdict)

# 核心逻辑
df['test'] = df.ge(pd.Series(checkdict), axis=1)\
                .any(axis=1, skipna=True)\
                .map({True: 'yes', False: 'no'})

逻辑说明

  • 将校验字典checkdict转为Series后,索引和DataFrame的列名一一对应
  • 调用ge()时指定axis=1,pandas会自动按列名匹配对应阈值做「大于等于」判断,返回布尔类型的DataFrame
  • 调用any(axis=1)逐行判断是否存在至少一个满足条件的值,skipna=True会自动将空值视为不满足条件,可根据需求调整参数
  • 最后用map()将布尔结果转为需要的yes/no格式

输出结果示例

col1  col2  col3 test
0     1     2   3.2  yes
1     2     3   4.2  yes
2     3     4   7.7  yes

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:06:07