如何对Pandas DataFrame进行自定义排序( 二 )

按多个变量排序接下来 , 让我们把事情变得更复杂一点 。 这里 , 我们将按多个变量对数据帧进行排序 。
df = pd.DataFrame({'order_id': [1001, 1002, 1003, 1004, 1005, 1006, 1007],'customer_id': [10, 12, 12, 12, 10, 10, 10],'month': ['Feb', 'Jan', 'Jan', 'Feb', 'Feb', 'Jan', 'Feb'],'day_of_week': ['Mon', 'Wed', 'Sun', 'Tue', 'Sat', 'Mon', 'Thu'],})类似地 , 让我们创建两个自定义类别类型cat_day_of_week和cat_month , 并将它们传递给astype() 。
cat_day_of_week = CategoricalDtype(['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],ordered=True)cat_month = CategoricalDtype(['Jan', 'Feb', 'Mar', 'Apr'],ordered=True,)df['day_of_week'] = df['day_of_week'].astype(cat_day_of_week)df['month'] = df['month'].astype(cat_month)要按多个变量排序 , 我们只需要传递一个列表来代替sort_values() 。 例如 , 按month和day_of_week排序 。
df.sort_values(['month', 'day_of_week'])
如何对Pandas DataFrame进行自定义排序文章插图
按ustomer_id , month 和day_of_week排序 。
【如何对Pandas DataFrame进行自定义排序】df.sort_values(['customer_id', 'month', 'day_of_week'])
如何对Pandas DataFrame进行自定义排序文章插图