Получение значения из таблицы Excel из пересечения значений с использованием Python - PullRequest
0 голосов
/ 23 ноября 2011

У меня есть таблица в 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

Если я возьму пример и у меня ad = 2, D = 4 (эти два значения всегда будут в одной строке) и B = 2.Поэтому я хотел бы вернуть значение Dimension = 37 в мою программу.У меня также проблема в том, что у меня есть несколько таблиц для чтения, поэтому я буду называть эту таблицу Таблицей 1, и я должен сначала прочитать все таблицы, которые содержат одну таблицу в каждом файле .xls.

1 Ответ

1 голос
/ 23 ноября 2011

Вот как искать в вашей таблице, основываясь на догадках, что вы хотите. Вы должны уметь самостоятельно выполнять трюки с петлями за 5 столами.

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

Обновление после вопросов, заданных в комментарии:

"" "Это должно вернуть значение размера, которое я хочу?" ""

Да, так и должно быть. Но это обобщенный подход. Я не отвечаю на вопросы «дай мне кодез» буквально. Вы должны проделать некоторую работу, либо написать «table_iterator», подходящий для инструмента (предположительно, xlrd), с которым вы читаете таблицу (ы), или трактовать его как псевдокод, который вы берете в качестве руководства и полностью переписываете в соответствии инструмент.

"" "В конце концов я скомпилировал все свои таблицы в один документ .xls, но с использованием нескольких таблиц. Есть ли какой-то особый способ поиска всех листов и применения этого кода?" ""

Как я уже сказал, вы должны быть в состоянии сделать трюк с петлями за 5 столами самостоятельно. Поиск во всех таблицах и , а затем применение этого кода кажется странным подходом. Вам нужно перебирать листы, искать каждый, пока не найдете подходящую строку.

...