对Dataframe进行多列排序——sort_values
sort_values() 函数说明pandas库的 sort_values() 函数可以对 Dataframe 的数据集按照某个字段中的数据进行排序。该函数可以指定列数据或行数据进行排序,可以是单个,也可以是多个。同时,对于 series 也有 sort_values() 函数,但在参数上稍有区别。官方介绍:pandas.DataFrame.sort_valuespandas.Series.so
·
sort_values() 函数说明
pandas库的 sort_values() 函数可以对 Dataframe 的数据集按照某个字段中的数据进行排序。该函数可以指定列数据或行数据进行排序,可以是单个,也可以是多个。
同时,对于 series 也有 sort_values() 函数,但在参数上稍有区别。
官方介绍:
sort_values() 具体参数
用法: DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind=‘quicksort’, na_position=‘last’, ignore_index=False, key=None)
常用参数说明:
参数 | 说明 |
---|---|
by | 指定要进行排序的列名或索引值 |
axis | 若 axis=0 或 ‘index’,则按照指定列的数据大小排序;若 axis=1 或 ‘columns’,则按照指定索引中数据大小排序。默认axis=0 |
ascending | 若 ascending=True,则按照升序排序;若 ascending=False,则按降序排序,默认为True,即升序排序。如果这是一个 bool 列表,则必须匹配 by 的长度 |
inplace | 排序后的数据是否替换原来的数据,默认为False,即不替换 |
ignore_index | 是否重置索引,默认为不重置 |
sort_values() 使用案例
- 创建 dataframe
import pandas as pd
import numpy as np
df = pd.DataFrame({
'col1': ['A', 'A', 'B', np.nan, 'C', 'C'],
'col2': [2, 1, 1, 8, 7, 4],
'col3': [0, 1, 9, 4, 8, 3],
})
print(df)
>>>
col1 col2 col3
0 A 2 0
1 A 1 1
2 B 1 9
3 NaN 8 4
4 C 7 8
5 C 4 3
- 根据第一、三列进行降序排序
print(df.sort_values(by = ['col1','col3'],ascending=False))
>>>
col1 col2 col3
4 C 7 8
5 C 4 3
2 B 1 9
1 A 1 1
0 A 2 0
3 NaN 8 4
- 根据第一列降序排序,当第一列相同时,根据第三列进行升序排序。并且重置索引,替换原数据
df.sort_values(by = ['col1','col3'],ascending=[False,True],ignore_index=True,inplace=True)
print(df)
>>>
col1 col2 col3
0 C 4 3
1 C 7 8
2 B 1 9
3 A 2 0
4 A 1 1
5 NaN 8 4
致谢
更多推荐
已为社区贡献2条内容
所有评论(0)