Вы могли бы определить функцию и вызвать apply
передавая имя функции, это создаст ФР с минимальной и максимальной, как имена индексов:
In [203]:
def minMax(x):
return pd.Series(index=['min','max'],data=[x.min(),x.max()])
df.apply(minMax)
Out[203]:
col1 col2 col3 col4
min -5 -7 -2 1
max 3 5 3 9
Если вы настаиваете на список списков можно перенести ФР и преобразовать значения в список:
In [206]:
def minMax(x):
return pd.Series(index=['min','max'],data=[x.min(),x.max()])
df.apply(minMax).T.values.tolist()
Out[206]:
[[-5, 3], [-7, 5], [-2, 3], [1, 9]]
сама функция не полностью необходимо, как вы можете использовать лямбда вместо:
In [209]:
df.apply(lambda x: pd.Series([x.min(), x.max()])).T.values.tolist()
Out[209]:
[[-5, 3], [-7, 5], [-2, 3], [1, 9]]
Заметим также, что вы можете использовать describe
и loc
, чтобы получить то, что вы хотите:
In [212]:
df.describe().loc[['min','max']]
Out[212]:
col1 col2 col3 col4
min -5 -7 -2 1
max 3 5 3 9