2015-03-26 3 views

ответ

5

Вы могли бы определить функцию и вызвать 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 
Смежные вопросы