您可以使用
np.logical_and.reduce:
import pandas as pdimport numpy as npdef search(df, *words): #1 """ 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])] # 2df = pd.Dataframe({'Name':['Virginia Google Governor', 'Governor Virginia', 'Governor Virginia Google']})print(search(df, 'Governor', 'Virginia', 'Google'))
Name0 Virginia Google Governor2 Governor Virginia Google
- 将
*
在def search(df, *words)
允许search
接受的位置参数的数量不受限制。它将收集所有参数(在第一个参数之后)并将其放在名为的列表中words
。 - np.logical_and.reduce([X,Y,Z])等效于
X & Y & Z
。但是,它允许您处理任意长的列表。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)