一种使用熊猫根据相应行将决策写入列的快速方法?

问题描述 投票:0回答:1

假设我在数据帧df中有四个列A,B,C,D,

import pandas as pd

df = pd.read_csv('results.csv')
df 

A     B     C     D
good  good  good  good
good  bad   good  good
good  bad   bad   good
bad   good  good  good

我想添加另一列result。其中的变量应基于相应行的变量。在我的情况下,如果在相应的行中,即在A,B,C,D列中至少有三种商品,则结果中的变量应为valid,否则为notvalid

预期输出:

A     B     C     D     results
good  good  good  good  valid
good  bad   good  good  valid
good  bad   bad   good  notvalid
bad   good  good  good  valid
python pandas
1个回答
1
投票

您可以使用:

df['results'] = np.where(df.eq('good').sum(1).ge(3), 'valid', 'invalid')

输出:

      A     B     C     D  results
0  good  good  good  good    valid
1  good   bad  good  good    valid
2  good   bad   bad  good  invalid
3   bad  good  good  good    valid
© www.soinside.com 2019 - 2024. All rights reserved.