文章目录
1. sort_values
官方文档
## 参数
DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')
#### 参数说明
axis:{0 or ‘index’, 1 or ‘columns’}, default 0,默认按照索引排序,即纵向排序,如果为1,则是横向排序
by:str or list of str;如果axis=0,那么by="列名";如果axis=1,那么by="行名";
ascending:布尔型,True则升序,可以是[True,False],即第一字段升序,第二个降序
inplace:布尔型,是否用排序后的数据框替换现有的数据框
kind:排序方法,{‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’。似乎不用太关心
na_position : {‘first’, ‘last’}, default ‘last’,默认缺失值排在最后面
2. 排序sort_values
- 构建DataFrame
import pandas as pd
df = pd.DataFrame([['a', 100, 'c'], ['a', 300, 'a'], ['a', 200, 'b'],
['c', 300, 'a'], ['c', 200, 'b'], ['c', 100, 'c'],
['b', 200, 'b'], ['b', 300, 'a'], ['b', 100, 'c']], columns=['X', 'Y', 'Z'])
X Y Z
0 a 100 c
1 a 300 a
2 a 200 b
3 c 300 a
4 c 200 b
5 c 100 c
6 b 200 b
7 b 300 a
8 b 100 c
- 按照Y, X两列对df进行降序排列
df.sort_values(by=['Y', 'X'], ascending=False, inplace=True)
print(df)
X Y Z
3 c 300 a
7 b 300 a
1 a 300 a
4 c 200 b
6 b 200 b
2 a 200 b
5 c 100 c
8 b 100 c
0 a 100 c
2. 分组排序groupby|sort_values
- 按照X列进行分组后对Y列进行升序排序
res = df.groupby('X', sort=False).apply(lambda x: x.sort_values('Y', ascending=True)).reset_index(drop=True)
print(res)
X Y Z
0 a 100 c
1 a 200 b
2 a 300 a
3 c 100 c
4 c 200 b
5 c 300 a
6 b 100 c
7 b 200 b
8 b 300 a
3. 附录
1. pandas分组聚合|agg|transform|apply
pandas分组聚合|agg|transform|apply
2. 缺省值判断 pd.isnull, pd.isna, pd.notna, pd.notnull, np.isnan, math.isnan 区别
缺省值判断 pd.isnull, pd.isna, pd.notna, pd.notnull, np.isnan, math.isnan 区别
本文围绕Pandas展开,介绍了sort_values排序方法,包括按多列降序排列,以及分组排序操作。附录部分还涉及Pandas分组聚合、缺省值判断方法的区别,以及DataFrame与字典的互转等内容,为使用Python进行数据处理提供参考。

7235

被折叠的 条评论
为什么被折叠?



