如何在DataFrame中基于多列条件生成错误标记列
如何在DataFrame中基于多列条件生成错误标记列
问题场景
需要在DataFrame的独立列中创建错误标记,实现多列条件校验:当Category列值为Fruit时,检查Item列值是否属于指定水果列表,不符合则标记Error,符合则标记OK。
示例DataFrame
Category Item Flag 0 Fruit Apple 1 Fruit Apple 2 Fruit Beef 3 Fruit Kiwi 4 Fruit Orange
需求说明
指定水果列表:
fruits = ['Apple', 'Orange', 'Kiwi']
校验逻辑:
- 当
df['Category'] == 'Fruit'时,检查df['Item']是否在fruits列表中 - 不在列表中标记
Error,符合则标记OK
解决方案
用Pandas结合Numpy的矢量化操作实现高效校验,代码如下:
import pandas as pd import numpy as np # 构造示例DataFrame df = pd.DataFrame({ 'Category': ['Fruit']*5, 'Item': ['Apple', 'Apple', 'Beef', 'Kiwi', 'Orange'], 'Flag': ['']*5 }) fruits = ['Apple', 'Orange', 'Kiwi'] # 生成错误标记列 df['Flag'] = np.where( (df['Category'] == 'Fruit') & (~df['Item'].isin(fruits)), 'Error', 'OK' )
预期输出
Category Item Flag 0 Fruit Apple OK 1 Fruit Apple OK 2 Fruit Beef Error 3 Fruit Kiwi OK 4 Fruit Orange OK
内容的提问来源于stack exchange,提问作者Mikalord
相关产品推荐
相关产品推荐

