如何同时检查两列和两列?

时间:2019-03-29 08:25:49

标签: python pandas dataframe multiple-columns

我正在尝试检查[group]和[subgroup]列中值的组合是否在有效组合列表中。

当我只检查一列时:

dataframe.loc[~(dataframe['group'].isin(validCombis.values.T[0].tolist())), 'myColumn'] = 'invalid' 

它工作正常。

但是我明白了 类型错误| 关键错误:“子组”

尝试以下操作时:

dataframe.loc[~(dataframe['group']['subgroup'].isin(validCombis)), 'myColumn'] = 'invalid' 

我需要检查两者的组合是否都在列表的一行中,在该行中我也有两列[group]和[subgroup]。

示例:

validCombis

  

[组] [子组]

1       1
1       4
2       1
3       8

数据框

  

[组] [子组] [myColumn]

1       1        NaN
1       4        NaN
2       8        NaN
3       4        NaN

运行某些代码后的预期输出

  

[组] [子组] [myColumn]

1       1        NaN
1       4        NaN
2       8        invalid
3       4        invalid

1 个答案:

答案 0 :(得分:0)

根据@ J.Doe的评论,我发现了

dataframe.loc[~((dataframe['group'].astype(str) + dataframe['subgroup'].astype(str)).isin(validCombis['EK']+validCombis['EUK'])), 'myColumn'] = 'invalid'

对我来说很好。