我正在尝试检查[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
答案 0 :(得分:0)
根据@ J.Doe的评论,我发现了
dataframe.loc[~((dataframe['group'].astype(str) + dataframe['subgroup'].astype(str)).isin(validCombis['EK']+validCombis['EUK'])), 'myColumn'] = 'invalid'
对我来说很好。