【Pandas】sort_values() / sort_index()
发布网友
发布时间:2024-08-18 21:40
我来回答
共1个回答
热心网友
时间:2024-08-29 23:48
DataFrame 和 Series 都可以通过.sort_index() 或.sort_values() 方法进行排序。
在DataFrame中,.sort_index() 方法通过索引的排序来实现值的排序。
一、sort_values() 方法
1. 真正地在指定轴上根据数值进行排序,默认为升序。
1.1 series.sort_values()
在原函数上进行修改,设置 inplace=True,返回按值排序的Series,如果 inplace=True,则返回None。
按值排序,默认升序,缺失值放在最上面(na_position = "first")
按值的字符串的小写降序排列(a key function:lambda)
1.2 DataFrame.sort_values()
by:axis 轴上的某个索引或索引列表,根据哪一个进行排序。例如:
对于空值,统一放到末尾。如果想要改变,需要 na_position=first 或者替换值。
在之前的 b 上拼一个带有NaN的行,使用 na_position=first 调整 NaN 位置。
举例:先按照 batch_no 进行分组,然后将所有 task_issued_time 缺失的数据,用task_type =1(运输任务)的那列时间填充。这里将 task_type=1 的做一个排序放在第一行。再用fillna(ffill)前项逐个填充后项。
先按照 batch_no 进行分组,然后将分组里面的 task_type 为1的运输任务放在最上面。
二、sort_index() 方法
Pandas 对索引的操作就是对数据的操作。
Series与DataFrame的参数没有区别(Series的 axis=0 / index)
1. inplace = True 更新原始Series并返回None,如果 inplace 为False,则返回按标签索引排序的新Series。
2. axis:是与DataFrame兼容所需的参数。其他和 sort_values 类似。默认 axis=0,对纵向方向进行排序。
对于 Series 对象,默认一定是在 0轴上操作。所以 DataFrame 对象默认也是0轴纵向。
3. na_position = "first"举例如下:
4. 按索引列的字符串的小写降序排列(a key function:lambda)
5. **指定索引 level 排序(同时多列索引的情况)
sort_index(level=1),以第二列索引排序,剩余的也排序了。如果换成(level=0),那么结果如下:
6. 当按照 level 排序时,剩余的 index 的 level 不排序。