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

2025-10-28 10:02:53

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如何根据两列或多列数据进行联合排序

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢