给出以下示例:
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
答案 0 :(得分:3)
您正在寻找:
d.iloc[:,(-d.std()).argsort()]
Out[8]:
b c a
0 5 30 45
1 95 70 55
答案 1 :(得分:1)
您可以像这样获得列顺序:
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