python - pandas排序

如果进行简单升降序使用以下功能一般就够用

import pandas as pd
# 数据
df = pd.DataFrame({'A':['a','c','b','d','a'],'B':[5,4,3,2,1]})

# 按照B列值进行排序
# ascending为True代表升序,False为降序
# na_position为First代表空值放在最后,First为放在最前
# ignore_index为True代表忽略索引
# inplace为True代表替换原数据
df.sort_values(by=['B'], ascending=True, na_position='last', ignore_index=True, inplace=True)
# A列升序,B列降序
import pandas as pd
df = pd.DataFrame({'A':['a','c','b','d','a'],'B':[5,4,3,2,1]})
df.sort_values(by=['A','B'], ascending=[True, False], na_position='last', ignore_index=True, inplace=True)

如果需要进行复杂排序可以自定义规则

# 按照B列与3的差的绝对值降序
import pandas as pd
df = pd.DataFrame({'A':['a','c','b','d','a'],'B':[5,4,3,2,1]})
def cmp(x):
    return abs(x-3)
df.sort_values(by=['B'], key=cmp, ascending=False, ignore_index=True, inplace=True)
posted @ 2024-12-08 20:36  wstong  阅读(9)  评论(0编辑  收藏  举报