python, эквивалентный listObjects в VBA для Excel (таблицы)

Я реализовал программу на VBA для Excel для создания автоматических сообщений на основе пользовательского ввода (выбор ячеек). Такой макрос, написанный на VBA, широко использует функцию listObject VBA, то есть определение таблицы (объекта списка).

Dim ClsSht As Worksheet
    Set ClsSht = ThisWorkbook.Sheets("paragraph texts")
Dim ClsTbl As ListObject
    Set ClsTbl = ClsSht.ListObjects(1)

доступ к таблице в коде очень логичен: ClsTbl теперь является таблицей, в которой я хочу собирать данные.

myvariable= ClsTbl.listcolumns("D1").databodyrange.item(34).value

Это означает, что myvariable - это элемент (строка) 34 данных столбца D1 таблицы clstbl

Я решил изучить python, чтобы «перевести» весь этот код в python и сделать программу на основе django доступной для всех.

Я новичок в Python, и мне интересно, что было бы эквивалентом в python листобъекту VBA. Это решение с самого начала сформирует всю мою программу на python, и я сильно не решаюсь решить, какой python эквивалентен listobject в VBA.

Основная идея здесь - получить доступ к таблицам-данным в читаемом виде,

введите описание изображения здесь

т.е. дайте мне значение столбца «текст», где столбец «глава» - 3, а абзац столбца - «2». Значения уникальны, то есть есть только одно значение в «текстовом» столбце, где оно встречается.

Некоторые наблюдения:

  1. Я знаю, что все можно сделать со списками в python, списки могут содержать списки, которые могут содержать списки ..., но это ужасно для удобочитаемости. mylist 1 [2] [3] (предполагая, например, что каждая строка может быть список значений, а вся таблица - список списков строк).

  2. Я не рассматривал вариант создания какой-либо базы данных. Есть несколько относительно небольших таблиц (от 10 до 500 строк и от 3 до 15 столбцов), которые связаны, но не в виде базы данных. Это заставило бы меня выучить еще один язык SQL или около того, а Python и DJango у меня более чем достаточно.

  3. Пользователь изменяет структуру многих таблиц (главы объединяются или разделяются.

  4. данные - это 100% строки. Единственные целые числа - это числа для сортировки текста. Я не выполняю никаких математических операций со значениями, а просто складываю фрагменты текста и делаю замены в текстах.

  5. таблицы будут загружены в Python как текстовые файлы CSV.

Пожалуйста, укажите мне, если в вопросе что-то неясное, и я дополню его

Было бы необходимо работать с numpy? панды?

т.е. дайте мне значение ячейки


person JFerro    schedule 22.05.2018    source источник


Ответы (1)


DataFrame, использующий pandas, должен обеспечивать все, что вам нужно, то есть преобразование строк, манипуляции, импорт и экспорт. Для начала попробуйте

import pandas as pd
df = pd.read_csv('your_file.csv')
print(df)
print(df['text'])

Записи первой строки будут преобразованы в метки столбцов DataFrame.

person E. Sommer    schedule 22.05.2018