Как отсортировать кадр данных панды по стандартным отклонениям его столбцов? - PullRequest
0 голосов
/ 15 октября 2019

Учитывая следующий пример:

from statistics import stdev
d = pd.DataFrame({"a": [45, 55], "b": [5, 95], "c": [30, 70]})
stds = [stdev(d[c]) for c in d.columns]

С выводом:

In [87]: d
Out[87]:
    a   b   c
0  45   5  30
1  55  95  70

In [91]: stds
Out[91]: [7.0710678118654755, 63.63961030678928, 28.284271247461902]

Я хотел бы иметь возможность отсортировать столбцы кадра данных по их стандартным отклонениям, что приведет кследующий

    b   c   a
0   5  30  45
1  95  70  55

Ответы [ 2 ]

3 голосов
/ 15 октября 2019

Вы ищете:

 d.iloc[:,(-d.std()).argsort()]
Out[8]: 
    b   c   a
0   5  30  45
1  95  70  55
1 голос
/ 15 октября 2019

Вы можете получить порядок столбцов следующим образом:

column_order = d.std().sort_values(ascending=False).index
# >>> column_order
# Index(['b', 'c', 'a'], dtype='object')

И затем отсортировать столбцы следующим образом:

d[column_order]                                                                                                                                                                                           

    b   c   a
0   5  30  45
1  95  70  55
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...