当前位置:   article > 正文

pandas|DataFrame排序及分组排序_dataframe分组排序

dataframe分组排序

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’,默认缺失值排在最后面  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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'])
  • 1
  • 2
  • 3
  • 4
  • 5
   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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 按照Y, X两列对df进行降序排列
df.sort_values(by=['Y', 'X'], ascending=False, inplace=True)
print(df)
  • 1
  • 2
   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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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)

  • 1
  • 2
  • 3
   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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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 区别

3. pandas中DataFrame字典互转

pandas中DataFrame字典互转

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/161993
推荐阅读
相关标签
  

闽ICP备14008679号