首页 > 解决方案 > 有没有办法从excel工作表名称中去除空格

问题描述

我希望在名为“封面表”的文件中导入一个 excel 文件和一个特定的表。我如何确保如果工作表名称拼写错误,例如“封面”(那里有一个额外的空格),那么仍然选择了正确的工作表?

这就是我目前所拥有的:

df.pd.read_excel('../blabla/bla.xlsx', sheetname='Cover sheet')

标签: pythonpython-3.x

解决方案


一个简单的空间删除是:

text = "english language"
text_without_spaces = text.replace(" ", "")
print(text_without_spaces)

然后您可以尝试导入有空格的和没有空格的,并相应地处理错误。

如果您想为这种用例提供​​更广泛的方法,我建议(明智地)使用 difflib 的 SequenceMatcher。SequenceMatcher 将比较两个字符串并返回一个从 0(完全不同)到 1(相同)的相似系数。

这是一个例子:

from difflib import SequenceMatcher

def similar(a, b):
    return SequenceMatcher(None, a, b).ratio()

original_text = "english language"
test1_text = "english language"
test2_text = "Englishlanguage"

print(similar(original_text, test1_text))
print(similar(original_text, test2_text))

输出

1.0
0.9032258064516129

然后,您可以将 Excel 文件作为一个整体导入并使用上述函数比较工作表名称,并在比率大于 0.8 时采取行动:

for sheet_name in xls.sheet_names()
    if similar(sheet_name, name_to_compare) > 0.8:
        # do something

请务必考虑误报。


推荐阅读