Учитывая:
>>> l1 = ['Category=worker,manager','Name=Ana,Tom', 'Task=Cleaning,Plumbing']
>>>
>>> df
Name Category Task OrderNum
0 Bryan worker,manager Cleaning,Plumbing 2
1 Ana,Tom worker,manager Cleaning,Plumbing 3
, вы можете сформировать запрос из l1
следующим образом:
>>> query = ' and '.join("{} == '{}'".format(*s.split('=')) for s in l1)
>>> query
"Category == 'worker,manager' and Name == 'Ana,Tom' and Task == 'Cleaning,Plumbing'"
... и затем выполнить
>>> df.query(query)
Name Category Task OrderNum
1 Ana,Tom worker,manager Cleaning,Plumbing 3
или
>>> df.query(query)['OrderNum']
1 3
Name: OrderNum, dtype: int64
или
>>> result, = df.query(query)['OrderNum']
>>> result
3
, если вы ожидаете ровно один удар, или
>>> result = df.query(query)['OrderNum'].iat[0]
>>> result
3
, если вы ожидаете хотя бы один удар и хотите назначить result
до первого удара, независимо от того, сколько их.