使用Python从Excel表的值交集提取数据

0 投票
1 回答
547 浏览
提问于 2025-04-17 06:54

我在Excel里有一个表格,我想要读取这个表格(我知道怎么做),但我还想告诉Python,如果有特定的d、D和B的值,它能把第一行的维度值作为一个变量返回到我的程序里。我看过很多关于交集的帖子,但不确定那些是否是我想要的,所以我决定问问我自己的问题。

我的Excel表格格式如下(这是一个小例子,因为我不能发图片):

                      Dimensions
d      D  |  17      27    37     47       17-47
          |                B           |   rsmin
0.6    2     0.8     -     -       -       0.05
1    2.5     1       -     -       -       0.05
1.5    3     1       -     1.8     -       0.05
2      4     1.2     -     2       -       0.05

举个例子,如果我设d = 2,D = 4(这两个值总是在同一行),而B = 2。那么我希望能把Dimension = 37这个值返回到我的程序里。另外,我还有一个问题,就是我有好几个工作表需要读取,所以我会把这个表称为Table1,并且我必须先读取所有工作表,每个工作表里都有一个表格,都是在同一个.xls文件里。

1 个回答

1

这里是如何根据你想要的内容来搜索你的表格。你应该能够自己完成遍历五个表格的操作。

def search(table_iterator, d, D, B):
    headings = next(table_iterator)
    junk = next(table_iterator)
    key = [d, D]
    for row in table_iterator:
        if row[0:2] != key: continue
        for index, value in enumerate(row[2:-1]):
            if value == B: 
                return headings(2 + index)
    return None

在评论中有人提问后更新:

"""这应该能返回我想要的维度值吗?"""

是的,应该能。但这是一种通用的方法。我不会直接回答“给我代码”的问题。你需要自己动手,要么写一个适合你用来读取表格的工具(可能是xlrd)的“表格迭代器”,要么把它当作伪代码,作为指导,然后完全重写以适应你的工具。

"""最后我把所有表格都合并到一个.xls文档里,但用了几个工作表。我有什么特别的方法可以搜索所有工作表,然后应用这段代码吗?"""

正如我所说的,你应该能够自己完成遍历五个表格的操作。搜索所有工作表然后再应用这段代码似乎有点奇怪。你需要逐个遍历工作表,搜索每一个,直到找到匹配的行。

撰写回答