Используйте isin
для логической маски и фильтра по boolean indexing
с df_A.index
:
idx = df_A.index[df_A['Col1'].isin(list_B)]
print (idx)
Int64Index([0, 2, 4], dtype='int64')
При необходимости list
:
idx = df_A.index[df_A['Col1'].isin(list_B)].tolist()
print (idx)
[0, 2, 4]
Деталь
print (df_A['Col1'].isin(list_B))
0 True
1 False
2 True
3 False
4 True
Name: Col1, dtype: bool
Для фильтрации всех строк по списку:
df1 = df_A[df_A['Col1'].isin(list_B)]
print (df1)
Col1 Col2
0 AA 1
2 CC 3
4 AA 5
А для фильтрации значений по списку инвертируйте логическую маску по ~
:
df2 = df_A[~df_A['Col1'].isin(list_B)]
print (df2)
Col1 Col2
1 BB 2
3 DD 4
Деталь
print (~df_A['Col1'].isin(list_B))
0 False
1 True
2 False
3 True
4 False
Name: Col1, dtype: bool