获取与关键字匹配的每个数据帧单元格的内容

2024-04-20 10:02:48 发布

您现在位置:Python中文网/ 问答频道 /正文

搜索数据帧的每个单元格并查看该单元格是否包含关键字列表中的值的正确方法是什么?下面的例子很简短。。。真正的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

#我希望它只打印“苹果”和“我爱苹果”的值


Tags: 数据方法苹果appledf列表关键字result
1条回答
网友
1楼 · 发布于 2024-04-20 10:02:48

我使用df.values.ravel().astype(str)从所有单元格中获取所有值作为常规列表,然后根据any对其进行过滤,以查看关键字是否是某个值的子字符串

试试这个:

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)

def findAll(keywordList, df):
    return [value for value in df.values.ravel().astype(str) if any(word in value for word in keywordList)]

result = findAll(myKeywords, myDf)
print(result)

输出:

['apple', 'I love apples']

相关问题 更多 >