DataFrame如何根据两列或多列数据进行联合排序

 时间:2026-02-15 07:49:44

1、如图所示,我们现有数据log_data包含如下四列信息:user_id,post_id,date,act_type(数据中的信息并未按照一定的顺序进行排列)

DataFrame如何根据两列或多列数据进行联合排序

2、现在我们想按照如下规则对数据进行排列:


(1)依据时间先后顺序;

(2)在依据时间先后顺序的前提下,按照用户id由小到大进行排序

3、实现上述目的,我们需要使用到sort_values( )函数。具体用法如下:

DataFrame.sort_values(by='##', axis=0, ascending=True, inplace=False)

4、第一步:确定所依据列的先后顺序,例如,这里我们是先按照date列,再按照user_id列,那么by后面需要数据的就是:['date', 'user_id'],即:

log_data.sort_values(by=['date', 'user_id'], )

5、第二步:我们依据的列索引信息对数据进行重新排序,所以axis后面依旧输入0,即:

log_data.sort_values(by=['date', 'user_id'], axis=0, )

6、第三步:输入排序的形式,即按照升序还是降序。这里我们都选择升序,即由小到大,将ascending后面设置为True。

log_data.sort_values(by=['date', 'user_id'], axis=0, ascending=[True,True], )

7、第四步:是否替换原始数据,这里我们选择不替换,也就是将inplace设置为False,将替换后的数据另保存给一个新变量(log_data_test):

log_data_test = log_data.sort_values(by=['date', 'user_id'], axis=0, ascending=[True,True], inplace=False)

8、得到结果如图所示

DataFrame如何根据两列或多列数据进行联合排序

9、可以看到排序后的数据,首先是按照时间进行排序的

DataFrame如何根据两列或多列数据进行联合排序

10、时间相同时,是按照id由小到大进行排序的

DataFrame如何根据两列或多列数据进行联合排序

  • pandas教程:[3]DataFrame切片操作
  • 【excel】中的INFO函数如何使用?
  • EXCEL把十进制转成固定位宽的二进制数:[1]1
  • 如何将tkinter的某个组件覆盖在另外组件之上
  • 如何在Matlab中运用正割函数sec
  • 热门搜索
    贵州荔波旅游 香港旅游发展局 衡山旅游 洛阳旅游年票官网 去迪拜旅游要多少钱 热门旅游景点 内蒙古旅游地图 去香港旅游注意事项 黄山旅游自助攻略 十月旅游