Найдите минимальное значение в каждом столбце с их индексом

Интересно, есть ли какой-либо метод, который я могу использовать для получения минимального значения в каждом столбце с его идентификатором индекса без использования метода агрегации (df.agg(['min','idmin']).T) для этого кода? !!

dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))

person Samir Alhejaj    schedule 21.08.2017    source источник
comment
Каков ваш ожидаемый результат? Пожалуйста, приведите пример.   -  person cs95    schedule 21.08.2017
comment
Я уже предоставляю весь код для получения результата!   -  person Samir Alhejaj    schedule 21.08.2017
comment
(df.agg(['min','idmin']).T) не работает?   -  person cs95    schedule 21.08.2017
comment
какую версию Pandas вы используете?!   -  person Samir Alhejaj    schedule 21.08.2017
comment
0,20? Я получаю ValueError.   -  person cs95    schedule 21.08.2017


Ответы (2)


Создайте DataFrame с нуля:

pd.DataFrame({'min': df.min(), 'idxmin': df.idxmin()})

       min     idxmin
A -1.106929 2013-01-03
B -0.642583 2013-01-06
C -1.350638 2013-01-04
D -0.213750 2013-01-06

или объединить две серии:

pd.concat((df.min(), df.idxmin()), axis=1).rename(columns={0: 'min', 1: 'idxmin'})
Out: 
        min     idxmin
A -1.106929 2013-01-03
B -0.642583 2013-01-06
C -1.350638 2013-01-04
D -0.213750 2013-01-06
person ayhan    schedule 21.08.2017

dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))

def minVal(x):
    return pd.Series(index=['min','idx'],data=[x.min(),x.idxmin()])

x = df.apply(minVal)

print(x)

          A                 B                      C                   D
min -0.743023394642       -1.05144770539       -2.1311363065        -1.02142276427
idx 2013-01-05 00:00:00   2013-01-04 00:00:00  2013-01-03 00:00:00  2013-01-06 00:00:00

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

print(x.T)

      min            idx
A  -0.657701  2013-01-05 00:00:00
B   -1.37038  2013-01-03 00:00:00
C   -1.93103  2013-01-03 00:00:00
D   -1.49314  2013-01-05 00:00:00
person Shubham R    schedule 21.08.2017