Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用熊猫搜索整个excel工作表中的单词_Python_Excel_Pandas - Fatal编程技术网

Python 使用熊猫搜索整个excel工作表中的单词

Python 使用熊猫搜索整个excel工作表中的单词,python,excel,pandas,Python,Excel,Pandas,我试图用Pandas在Python中复制Find函数(control-f)。我想搜索整个工作表(所有行和列),查看工作表上的任何单元格是否包含单词,然后打印出找到单词的行。我想在多张纸上做这个 我已导入该工作表: pdTestDataframe = pd.read_excel(TestFile, sheet_name="Sheet Name", keep_default_na= False, na_values=[""]) 并尝试创建一个列列表,我可以索引到所有单元格的值中,但它仍然排除了工

我试图用Pandas在Python中复制Find函数(control-f)。我想搜索整个工作表(所有行和列),查看工作表上的任何单元格是否包含单词,然后打印出找到单词的行。我想在多张纸上做这个

我已导入该工作表:

pdTestDataframe = pd.read_excel(TestFile, sheet_name="Sheet Name", 
keep_default_na= False, na_values=[""])
并尝试创建一个列列表,我可以索引到所有单元格的值中,但它仍然排除了工作表中的许多单元格。尝试的代码如下所示

columnsList = []
for i, data in enumerate(pdTestDataframe.columns):
    columnList.append(pdTestDataframe.columns[i])
for j, data1 in enumerate(pdTestDataframe.index):
    print(pdTestDataframe[columnList[i]][j])

我希望确保无论excel工作表的格式如何,都可以在所有包含数据的单元格中搜索单词。我希望能得到任何帮助

熊猫对此有不同的想法。只需调用
df[df.text\u column.str.contains('whatever')]
将显示文本包含在一个特定列中的所有行。要搜索整个数据帧,可以使用:

mask = np.column_stack([df[col].str.contains(r"\^", na=False) for col in df])
df.loc[mask.any(axis=1)]

(来源是)

您能否稍微扩展一下掩码字符串的功能以及如何使用它?当我尝试实现它时,它没有正常工作。掩码是一种过滤数据帧的方法。检查序列(在此上下文中,df中的列)是否包含str将返回一个包含
TRUE
FALSE
值的数组。将此“掩码”应用于df只返回语句为true的行。通过循环遍历每一列,可以得到至少一列中包含字符串的所有行的集合。希望这有帮助!我建议您阅读“Friedlander”这篇文章,您会在excel文件中的所有工作表中执行此搜索吗?或者假设某个特定的工作表已解析为数据帧。也许一个包含多张工作表的文件是一个不同的问题,这就是我如何找到这篇文章的(寻找解决方案)