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)