使用Python从Excel表的值交集提取数据
我在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文档里,但用了几个工作表。我有什么特别的方法可以搜索所有工作表,然后应用这段代码吗?"""
正如我所说的,你应该能够自己完成遍历五个表格的操作。搜索所有工作表然后再应用这段代码似乎有点奇怪。你需要逐个遍历工作表,搜索每一个,直到找到匹配的行。