我正在建设一条管道,不幸的是,它需要从另一个团队移交数据.我们发现,特定数据的工作表名称存在格式问题.工作表应该按全小写的数据对应的月份命名.然而,我们现在已经多次收到了全大写和大小写混合的文件.我相信这个文件是手动生成的,所以工作表并不总是在相同的位置(大多数时候是第一个工作表,但偶尔也是第二个).有没有办法以编程方式使用Pandas READ_EXCEL函数以不区分大小写的方式读取工作表名称?

推荐答案

您可以使用ExcelFile:

sheet_name = 'data2'  # what you are looking for

with pd.ExcelFile('data.xlsx') as xlsx:
    sheets = [sheet.lower() for sheet in xlsx.sheet_names]
    # If the sheet is not found, it will a ValueError exception
    idx = sheets.index(sheet_name)
    df = pd.read_excel(xlsx, sheet_name=idx)

详细信息:

>>> xlsx.sheet_names
['Data1', 'DATA2', 'data3']

>>> sheets
['data1', 'data2', 'data3']

>>> sheets.index(sheet_name)
1

Python相关问答推荐

如何从格式为note:{neighbor:weight}的字典中构建networkx图?

如何在Python中按组应用简单的线性回归?

从 struct 类型创建MultiPolygon对象,并使用Polars列出[list[f64]列

Python主进程和分支进程如何共享gc信息?

使用from_pandas将GeDataFrame转换为polars失败,ArrowType错误:未传递numpy. dype对象

LAB中的增强数组

如何检测背景有噪的图像中的正方形

Python中的嵌套Ruby哈希

为什么符号没有按顺序添加?

将输入管道传输到正在运行的Python脚本中

无法通过python-jira访问jira工作日志(log)中的 comments

更改键盘按钮进入'

使用setuptools pyproject.toml和自定义目录树构建PyPi包

将tdqm与cx.Oracle查询集成

如何将多进程池声明为变量并将其导入到另一个Python文件

梯度下降:简化要素集的运行时间比原始要素集长

优化器的运行顺序影响PyTorch中的预测

如何在达到end_time时自动将状态字段从1更改为0

使用字典或列表的值组合

freq = inject在pandas中做了什么?''它与freq = D有什么不同?''