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

如何在Pandas DataFrame中为至少一列超阈值的行打标签?

问题解决

错误原因

当你使用df.apply(..., axis=1)时,传入函数flag_df_new的参数是DataFrame的单行数据(Series对象),而非整个DataFrame。Series没有columns属性,因此会抛出AttributeError: 'Series' object has no attribute 'columns'。

解决方案

方法1:矢量化操作(推荐,效率更高)

直接对目标列进行批量判断,无需使用apply:

# 指定需要判断的列
target_columns = ['Value_1', 'Value 2', 'Value 3']
# 对每行判断是否有值>10,再转为整数类型(True→1,False→0)
customer_summary_1['Column_tag'] = (customer_summary_1[target_columns] > 10).any(axis=1).astype(int)

方法2:修改apply函数

如果一定要用apply,调整函数逻辑直接处理传入的Series:

def flag_df_new(row):
    # 检查当前行的目标列是否有大于10的值
    if row[['Value_1', 'Value 2', 'Value 3']].gt(10).any():
        return 1
    return 0

customer_summary_1['Column_tag'] = customer_summary_1.apply(flag_df_new, axis=1)

验证结果

执行上述任意一种方法后,DataFrame会生成期望的Column_tag列:

Unique IDValue_1Value 2Value 3Column_tag
1111050181
2225820
33312351

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 13:07:28