Что такое хорошая модель данных для перекрестного табулирования?

Это более явно, чем необходимо, но делает то, что вы хотите.

with open("file.txt", "r") as ins:
    array = []
    for line in ins:
        array.append(line)
6
задан Brock Adams 22 November 2011 в 01:03
поделиться

3 ответа

Вы можете использовать базу данных в памяти sqlite в качестве структуры данных и определять желаемые операции как запросы SQL.

import sqlite3

c = sqlite3.Connection(':memory:')
c.execute('CREATE TABLE data (a, b, c)')

c.executemany('INSERT INTO data VALUES (?, ?, ?)', [
    (1, None,    1),
    (1,    0,    3),
    (1,    0,    3),
    (1,    2,    3),
    (2, None,    1),
    (2,    0, None),
    (2,    2,    2),
    (2,    2,    4),
    (2,    2, None),
])

# queries
# ...
1
ответ дан 17 December 2019 в 22:14
поделиться

Поскольку это раннее упражнение по программированию для Python, они, вероятно, хотят, чтобы вы увидели, какие встроенные механизмы Python подходят для начальной версии проблемы. Структура словаря кажется хорошим кандидатом. Первое значение столбца из вашего файла tab-sep может быть ключом в словаре. Запись, найденная с помощью этого ключа, может сама быть словарем, ключ которого является значением второго столбца. Записи вспомогательного словаря будут счетчиком, инициализируемым до 1, когда вы добавляете новый вспомогательный словарь при первом обнаружении пары.

0
ответ дан 17 December 2019 в 22:14
поделиться

Почему бы не сохранить его с помощью таблиц HTML? Возможно, это не лучший вариант, но вы могли бы очень легко просмотреть его в браузере.

Изменить:

Я просто перечитал вопрос, и вы просите модель данных, а не модель хранения. Чтобы ответить на этот вопрос ...

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

It '

-1
ответ дан 17 December 2019 в 22:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: