在Pandas Dataframe中搜索动态的单词数

时间:2018-03-12 13:37:31

标签: python pandas dataframe

我有一个包含1列和9999行的.csv文件,我必须编写一个算法来搜索包含特定单词的字符串。到目前为止,我有固定数量的单词代码(在这种情况下为3个单词):

import pandas as pd
df = pd.read_csv('example.csv', encoding='cp1251',header=None)
search = input("searching for:  " )
search = search.lower().split()
df[0] = df[0].str.lower()
print (df[df[0].str.contains(search[0]) & df[0].str.contains(search[1]) & df[0].str.contains(search[2])])

请注意,我如何为搜索的动态字数做出类似的算法。

感谢您的时间!

1 个答案:

答案 0 :(得分:1)

您不必枚举search中的每个可能索引。相反,您可以使用按位和(reduce())运算符使用&

#from functools import reduce  # for python3 only
print(df[reduce(lambda a, b: a&b, (df[0].str.contains(s) for s in search))])