pandas dataframe逐行检查是否含异常值1并新增对应结果列的实现方法
实现方案
假设你使用Python的Pandas库处理该表格数据,最高效的实现方式是调用Pandas内置的向量化方法any(),底层为C实现,完全规避Python层循环,无论数据量大小都有最优的执行效率,同时代码极简。
核心实现逻辑:
- 用
axis=1参数指定按行扫描,只要行内存在任意1个非0值(也就是异常值1)就返回布尔值True,全为0则返回False - 用
astype(int)将布尔值直接转为整数,True对应1、False对应0,完全匹配你的规则要求
完整可运行代码如下:
import pandas as pd # 构造你的示例数据集 df = pd.DataFrame({ 'a': [0,0,1,0,0], 'b': [0,1,0,0,0], 'c': [0,0,0,0,0], 'd': [0,0,0,0,0], 'e': [1,0,1,0,1] }) # 新增result列的核心代码,仅1行 df['result'] = df.any(axis=1).astype(int) # 输出验证结果 print(df)
运行后输出的结果和你给出的预期完全一致。
内容的提问来源于stack exchange,提问作者Kami
相关产品推荐
相关产品推荐

