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

标签 python pandas

假设我在数据框中有四列 A、B、C、D df :

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

最佳答案

您可以使用:

# columns of interest:
cols = ['A','B','C','D']

df['results'] = np.where(df[cols].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

关于python - 一种使用 Pandas 根据相应行将决策写入列的快速方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61967683/

相关文章:

python - Pandas 面板切片 - 提高性能

python - 从 Pandas 获取其他类别的聚合

python - 列表操作,跟踪旧列表

python - 使用 PyGithub 获取 Github 中的用户信息

python - 为什么导入平台上的 Python3 platform.processor 给出空输出?

python - Python 中的快速后缀生成

python - 嵌套的 Pandas 数据框 - 如何按数据选择/分组?

python - 将数据帧行聚合到字典中

python - 查找图中的所有闭环

python - 如何在 Pandas 数据框中的动态列中添加值?