【问题标题】:Pandas: Sort Two Columns Together in a Pair [duplicate]熊猫:对两列一起排序[重复]
【发布时间】:2019-07-27 18:18:15
【问题描述】:

我正在尝试对两个 pandas 数据框列进行排序。我了解 Python 有自己的内置函数:

.sort()

但我想知道 Pandas 是否也有这个功能,是否可以将两列放在一起,作为一对。

比如说我有以下数据集:

   sum         feature        
0  5.1269        3
1  2.8481        2     
2  -1.472        1  
3  -3.212        0

我想得到这个:

   sum         feature        
0  -3.212        0
1  -1.472        1     
2  2.8481        2  
3  5.1269        3

基本上我在这里做的是对列“特征”进行排序以使其从最小值到最大值,但是我希望“总和”中的相应值也发生变化。

有人可以帮我解决这个问题吗?我在 Stackoverflow 上看到过其他关于此的帖子,但是我没有找到解释该过程的详细答案,也没有找到这个特定问题的答案。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    只需使用:

    df.sort_values('feature')
    

    重置索引:

    df=df.sort_values('feature').reset_index(drop=True)
    print(df)
    
          sum  feature
    0 -3.2120        0
    1 -1.4720        1
    2  2.8481        2
    3  5.1269        3
    

    【讨论】:

    • 这是否也对'sum'中的值进行排序?
    • @Saurish 是的
    • @Saurish 如果您的功能是独一无二的,这是最好的解决方案。虽然如果你有不同总和的重复特征值,那么你可以使用:df.sort_values(['feature', 'sum']),按此顺序
    • 我同意@MohitMotwani :)
    • 谢谢大家;正如@jezrael 已经指出的那样,这个问题是重复的;我想我在通过 Stackoverflow 搜索时很糟糕。这些信息帮助了我很多。谢谢:)
    猜你喜欢
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 2021-08-12
    • 2012-08-21
    相关资源
    最近更新 更多