【问题标题】:Sorting a column in pandas dataframe using two other columns使用其他两列对熊猫数据框中的一列进行排序
【发布时间】:2021-09-21 19:18:37
【问题描述】:

我有一个看起来像这样的数据框 -

   P_id Sim no_of_occurance
0   1   0.00    4
1   2   0.25    3
2   3   0.25    5
3   4   0.25    5
4   5   0.25    6
5   6   0.25    4
6   7   0.50    6
7   8   0.50    2
8   9   0.50    5
9   10  0.25    4
10  11  0.25    6
11  12  0.50    4
12  13  0.50    4
13  14  0.25    4

我想根据Sim' 列中每行和Sim 值相同的行的相应降序值对P_id 进行排序,我希望P_id 排在第一位,其no_of_occurance 更高.

期望的输出-

P_id  Sim    no_occurance
 7    0.50    6
 9    0.50    5
 12   0.50    4
 13   0.50    4
 8    0.50    2
 5    0.25    6
 11   0.25    6
 .
 .
 .

【问题讨论】:

  • 您正在寻找pandas.DataFrame.sort_values。这是link

标签: python pandas dataframe sorting


【解决方案1】:

试试:

df = df.sort_values(by=["Sim", "no_of_occurance"], ascending=[False, False])
print(df)

打印:

    P_id   Sim  no_of_occurance
6      7  0.50                6
8      9  0.50                5
11    12  0.50                4
12    13  0.50                4
7      8  0.50                2
4      5  0.25                6
10    11  0.25                6
2      3  0.25                5
3      4  0.25                5
5      6  0.25                4
9     10  0.25                4
13    14  0.25                4
1      2  0.25                3
0      1  0.00                4

【讨论】:

  • 我认为 df.sort_values(by =["Sim", "no_of_occurance"],ascending=False ) ,我们需要两次 False 吗?
  • @KarnKumar 是的,一个False 就足够了。我只想说清楚。
猜你喜欢
  • 1970-01-01
  • 2015-11-06
  • 1970-01-01
  • 2016-10-13
  • 2014-12-29
  • 1970-01-01
相关资源
最近更新 更多