搜索数据帧的每个单元格并查看该单元格是否包含关键字列表中的值的正确方法是什么?下面的例子很简短。。。真正的datafarame可以有任意数量的列/行并包含空值。我知道这是不对的,但一个出发点是:
import pandas as pd
myKeywords = ['apple', 'banana', 'orange']
myData = [['apple',10],['coconut',12],['donut',13],['I love apples',13]]
myDf = pd.DataFrame(myData,columns=['colOne','colN'],dtype=float)
print myDf
def findAll(keywordList, df):
return df[(df.values.ravel() in keywordList).reshape(df.shape).any(1)]
result = findAll(myKeys, myDf)
print result
#我希望它只打印“苹果”和“我爱苹果”的值
我使用
df.values.ravel().astype(str)
从所有单元格中获取所有值作为常规列表,然后根据any
对其进行过滤,以查看关键字是否是某个值的子字符串试试这个:
输出:
相关问题 更多 >
编程相关推荐