Pandas 的 sort_values() 函数用于根据一个或多个列中的值对 DataFrame 进行排序。这个函数非常灵活,可以处理升序、降序排序,以及多层排序规则。
以下是 sort_values() 函数的一些关键特点:
基本排序:
可以对一个列进行升序或降序排序。
多列排序:
可以指定多个列,DataFrame 将根据这些列的值进行排序。
排序顺序:
可以为每个列指定排序顺序(升序或降序)。
就地排序:
通过设置 inplace=True,可以在原 DataFrame 上进行排序,不返回新的 DataFrame。
排序轴:
默认沿行的方向(axis=0)进行排序,axis=1 表示沿列的方向。
处理空值:
可以指定空值排序的位置(默认为排序在末尾)。
保持索引:
设置 ignore_index=True 可以在排序后重置索引。
import numpy as np
import pandas as pd
df = pd.DataFrame(data=[{"A":"1", "B":"3"}, {"A":"3", "B":"2"}, {"A":"2", "B":"1"}])
df = pd.DataFrame(data=[{"A":1, "B":3}, {"A":3, "B":2}, {"A":2, "B":1}])
A | B | |
---|---|---|
0 | 1 | 3 |
1 | 3 | 2 |
2 | 2 | 1 |
A列升序,上小下大
df_sort = df.sort_values(by='A')
print(df_sort)
B列降序,上大下小
df_sort = df.sort_values(by='B', ascending=False)
print(df_sort)
C列降序,上大下小
D列升序,上小下大
df_sort = df.sort_values(by=['C', 'D'], ascending=['False', 'True'])
df_sort = df.sort_values(by=['C', 'D'], ascending=[True, False])
print(df_sort)
A列升序,上小下大,缺失值(NaN)在前
df_sort = df.sort_values(by='A', na_position='first')
print(df_sort)
A列升序,上小下大,缺失值(NaN)在后
df_sort = df.sort_values(by='A', na_position='last')
print(df_sort)
作用是让index索引从0排好
df = df.reset_index()