代码之家  ›  专栏  ›  技术社区  ›  D. Rao

如何在不对熊猫中的其他列进行更改的情况下对一列进行排序?

  •  2
  • D. Rao  · 技术社区  · 8 年前

    例子: 当前DF看起来像:

        df=
        A B
        1 5
        2 6
        3 8
        4 1
    

    我希望得到的df是这样的(b被排序,a保持不变):

        df=
        A B
        1 8
        2 6
        3 5
        4 1
    
    1 回复  |  直到 8 年前
        1
  •  8
  •   MaxU - stand with Ukraine    8 年前

    你需要打破熊猫内部的安全机制- aligning by index ,它负责 data consistency . 因此,指定1d numpy数组或普通的python列表可以做到这一点,因为它们都没有索引,所以pandas无法进行对齐:

    df['B'] = df['B'].sort_values(ascending=False).values
    

    df['B'] = df['B'].sort_values(ascending=False).tolist()
    

    两个收益率:

    In [77]: df
    Out[77]:
       A  B
    0  1  8
    1  2  6
    2  3  5
    3  4  1