我正在尝试从数据框中创建一个布尔掩码(或索引列表),以指示多个列匹配列表中某些组合的位置。以下是一个例子:
import pandas as pd
df = pd.DataFrame({'A': ['alice', 'bob' , 'charlie' , 'dave' , 'dave'],
'B': ['andy' , 'bridget', 'charlotte', 'diana', 'andy'],
'C': ['some' , 'other' , 'stuff' , 'here' , '!' ]})
pairs = pd.DataFrame({'A': ['alice', 'dave'],
'B': ['andy' , 'diana']})
我希望的输出结果是以下之一
[True, False, False, True, False]
或者
[0, 3]
关键是我不想返回行索引为4,即
['dave', 'andy','!']
。 我可以通过转换回列表来实现所需的结果...但这感觉像是一个很长的方法,我认为有一种“pandas”的方法可以做到这一点!df_list = df[['A', 'B']].values.tolist()
pairs_list = pairs.values.tolist()
[idx for idx, row in enumerate(df_list) if row in pairs_list]