Мне нужно назначить и извлечь фрагменты данных, используя два ключа, и я не априори знаю значения для одного из ключей.
В частности, я загружаю и обрабатываю файлы текстовых данных, в которых перечислены значения с плавающей точкой по году и продолжительности (например, 1 час). Ключи длительности предопределены, а годы - нет. Данные предоставляются последовательно, по одной строке за раз (другими словами, не в табличной форме).
Поскольку я не знаю все годы в данном файле, пока я пытался использовать defaultdict (dict ). Вот мой пример кода.
from collections import defaultdict
a = defaultdict(dict)
a[2006][2]=0.024
a[2004][2]=0.157
a[2000][1]=0.64
a[2005][2]=0.346
a[2003][2]=0.165
a[2003][6]=0.8
a[2007][12]=0.642
a[2003][1]=0.664
a[2002][6]=0.579
a[2004][1]=0.829
a[2001][6]=0.344
a[2003][3]=0.508
a[2003][12]=0.66
a[2002][1]=0.923
:a
defaultdict(dict,
{2006: {2: 0.024},
2004: {2: 0.157, 1: 0.829},
2000: {1: 0.64},
2005: {2: 0.346},
2003: {2: 0.165, 6: 0.8, 1: 0.664, 3: 0.508, 12: 0.66},
2007: {12: 0.642},
2002: {6: 0.579, 1: 0.923},
2001: {6: 0.344}})
Мне нужно сделать три вещи.
Получить все ключи года. Помните, я не знаю их заранее.
Для каждого года извлекайте пары продолжительности: значение. Я понял, что это одно.
: a[2002]
{6: 0.579, 1: 0.923}
Для каждой продолжительности извлекайте пары год: ключ. Я застрял на этом.
Я ценю любую помощь, которую вы можете предложить. Если я буду делать это в numpy, pandas или в другом месте, не стесняйтесь перенаправить меня. Имейте в виду, что я не знаю диапазон года раньше времени, и даже если бы я знал, есть случайные годы разрыва без данных.