import numpy as np

def search(df, *words):
    """
    Return a sub-DataFrame of those rows whose Name column match all the words.
    """
return df[np.logical_and.reduce([df['Name'].str.contains(word) for word in
    words])]
df = pd.DataFrame({'Name': ['Virginia Google Governor', 'Governor Virginia',
    'Governor Virginia Google']})
print(search(df, 'Governor', 'Virginia', 'Google'))
Поиск нескольких строк в пандах без предварительного определения количества строк для использования