мин против максимальная разница в кадре данных панд по столбцам - PullRequest
0 голосов
/ 16 мая 2018

У меня есть кадр данных, как показано ниже,

             40    50    60    
Friday     2.68  2.41  2.02  
Monday     4.07  3.74  3.41  
Thursday   4.94  4.57  4.02  
Tuesday    4.82  4.59  3.98  
Wednesday  2.76  2.68  2.37 

Я хочу вычесть максимальное - минимальное значение из каждого значения от 40 до 90, а затем найти минимальное значение ключевого значения (60) из расчета.

как [{40:[4.94 - 2.68 = 2.26]},{50:[4.59-2.41=2.18]},{60:[4.02-2.02 = 2]}] и, наконец,

[{40:[2.26]},{50:[2.18]},{60:[2]}]

FinalOutput = 60

Ответы [ 2 ]

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

Для словаря используйте понимание слова:

d = {k:[v] for k, v in df.max().sub(df.min()).items()}
print (d)
{'50': [2.1799999999999997], '40': [2.2600000000000002], '60': [1.9999999999999996]}

Для индекса минимального значения idxmin:

a = df.max().sub(df.min()).idxmin()
print (a)
60

Подробности :

print (df.max().sub(df.min()))
40    2.26
50    2.18
60    2.00
dtype: float64
0 голосов
/ 16 мая 2018

В одном расчете вы можете использовать numpy.argmin для индексации df.columns:

A = df.values

res = df.columns[(A.max(0) - A.min(0)).argmin()]  # 60

Если вам нужны промежуточные значения, то вы можете разделить расчет. Обратите внимание на аргумент 0 для методов max и min, обеспечивающий выполнение расчетов для каждого столбца.

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