Найти среднее и минимальное значение от объекта Array - Python - PullRequest
0 голосов
/ 10 мая 2018

У меня есть данные как ниже,

resultFromCalculation = [{'value40': {'A': 3.1, 'B': 5.62, 'C': 5.99, 'D': 5.06, 'E': 5.09}}, 
    {'value50': {'A': 2.95, 'B': 5.21, 'C': 5.41, 'D': 4.64, 'E': 4.5}}, 
    {'value60': {'A': 2.35, 'B': 4.8, 'C': 4.83, 'D': 4.08, 'E': 3.62}},
    {'value70': {'A': 2.95, 'B': 5.21, 'C': 5.41, 'D': 4.64, 'E': 4.5}}]

Я хочу найти средние значения от A до E для каждого списка. Как,

avgValues = [{'value40':4.97},{'value50':4.41},{'value60':3.99},{'value70':3.99}]

Из вышеприведенного ОП мне нужно выяснить, какой из них в первую очередь имеет наименьшее значение, чем другие.

FinalResultIs = value60

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Использование панд:

>>> pd.concat([pd.DataFrame(d) for d in resultFromCalculation], axis=1).mean()
value40    4.972
value50    4.542
value60    3.936
value70    4.542
dtype: float64

>>> pd.concat([pd.DataFrame(d) for d in resultFromCalculation], axis=1).mean().argmin()
'value60'

Используя простое понимание списка, вы можете использовать

avgValues = [{list(d.keys())[0]: sum(list(d.values())[0].values()) / len(list(d.values())[0].values())} for d in resultFromCalculation]
>>> avgValues
[{'value40': 4.9719999999999995},
 {'value50': 4.542},
 {'value60': 3.936000000000001},
 {'value70': 4.542}]

Чтобы найти минимум:

>>> min(avgValues, key=lambda e: list(e.values())[0])
{'value60': 3.936000000000001}
0 голосов
/ 10 мая 2018

Использование:

L = [pd.DataFrame(x).mean().to_dict() for x in resultFromCaluclation]
print (L)
[{'value40': 4.9719999999999995}, {'value50': 4.542}, {'value60': 3.936000000000001}, {'value70': 4.542}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...