为了账号安全,请及时绑定邮箱和手机立即绑定

按升序(字母顺序)对一列进行排序,但对另一列的值按降序排序?仔细看看预期的输出

按升序(字母顺序)对一列进行排序,但对另一列的值按降序排序?仔细看看预期的输出

慕莱坞森 2021-04-02 09:14:29
我有一个这样的数据框:name     valueray     20sun     20mom     10ate     10pea      7kite     6dance    5我想这样安排:ray 20sun 20ate 10mom 10pea 7kite 6dance 5
查看完整描述

2 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

这非常简单:将列及其升序标志都传递给sort_values:


import pandas


df = pandas.DataFrame({

    'name': ['ray', 'sun', 'mom', 'ate', 'pea', 'kite', 'dance'],

    'value': [20, 20, 10, 10, 7, 6, 5]

})


df.sort_values(by=['value', 'name'], ascending=[False, True])

#    name  value

# 0  ray   20

# 1  sun   20

# 3  ate   10

# 2  mom   10

# 4  pea    7

# 5  kite   6

# 6  dance  5


查看完整回答
反对 回复 2021-04-13
?
慕斯王

TA贡献1864条经验 获得超2个赞

我不是特别喜欢执行以下操作,但这仍然是解决该问题的另一种方法:


print(pd.DataFrame(sorted(df.values,key=lambda x: x[1],reverse=True),columns=df.columns))

输出:


    name  value

0    sun     20

1    mom     20

2    ray     10

3    ate     10

4    pea      7

5   kite      6

6  dance      5


查看完整回答
反对 回复 2021-04-13
  • 2 回答
  • 0 关注
  • 137 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号