我有一个包含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])])
请注意,我如何为搜索的动态字数做出类似的算法。
感谢您的时间!
答案 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))])