Доступ к одинаковому значению для всех элементов в словаре кортежей - PullRequest
1 голос
/ 18 апреля 2019

У меня есть словарь, содержащий ключи, все с 7-ю кортежами в качестве значений.Для каждого 7-го кортежа каждое из 7 значений представляет отдельное свойство, соответствующее набору данных, который представляет ключ.Например, первый элемент каждого кортежа представляет собой массив этих наборов данных необработанных данных, второе значение представляет собой среднее значение данных, третье значение представляет собой ошибку в этом среднем значении, четвертое значение представляет собой температуру, при которой этот набор данныхя хотел бы построить различные комбинации этих значений, например, среднее значение против температуры.

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

dictionary={}
for i in range(len(imagefolders)):
   dictionary[slugify(imagefolders[i])]=images2(r{}\*.png".format(imagefolders[i]))

plotting=dictionary.values()

Приведенный выше код показывает, как я вводил ключи и значения в словарь.Я знаю, что dictioanry.values ​​() возвращает список всех значений в словаре, однако, когда я попробовал приведенный выше код, он даже не сохранил это как переменную.

Теперь я думаю, возможно, используя словарьХранить эти данные было не лучшим вариантом, поэтому, если у кого-то есть какие-то лучшие идеи сделать это, то, пожалуйста, скажите, но метод заставить его работать со словарем был бы идеальным.

Я довольно неопытен сpython, поэтому был бы признателен за любой вклад.

1 Ответ

1 голос
/ 18 апреля 2019

Я бы порекомендовал вам взглянуть на панд .Это сделано для анализа данных и имеет массу супер полезных функций.Это может показаться немного кривой, но здесь есть много документации по stackoverflow.

Чтобы показать вам некоторые возможности, я создал фиктивный диктовку, похожую на то, что вы описали.Я использую очень простой кортеж, чтобы помочь продемонстрировать положение элементов для последующего

columns = ['data', 'mean', 'error', 'temperature', 'other1', 'other2', 'other3']
d = {}
for i in ['one', 'two', 'three', 'four', 'five']:
    d[i] = (1, 2, 3, 4, 5, 6, 7)

print(d)
# {
#   'one':   (1, 2, 3, 4, 5, 6, 7),
#   'two':   (1, 2, 3, 4, 5, 6, 7),
#   'three': (1, 2, 3, 4, 5, 6, 7),
#   'four':  (1, 2, 3, 4, 5, 6, 7),
#   'five':  (1, 2, 3, 4, 5, 6, 7)
# }

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

import pandas as pd
df = pd.DataFrame.from_dict(d, orient='index', columns=columns)
print(df)
#        data  mean  error  temperature  other1  other2  other3
# three     1     2      3            4       5       6       7
# one       1     2      3            4       5       6       7
# five      1     2      3            4       5       6       7
# two       1     2      3            4       5       6       7
# four      1     2      3            4       5       6       7

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

print(df['data'])
# one      1
# three    1
# four     1
# two      1
# five     1
# Name: data, dtype: int64

print(df['data'].mean())
# 1.0

Pandas также имеет встроенную поддержку matplotlib через функцию df.plot().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...