职场办公|自定义排序

01 问题描述

如下图所示,我需要将一级类型按照“采石场 > 工矿用地 > 能源设施 > 旅游设施 > 交通设施 > 养殖场 > 农业用地 > 居民点 > 其他人工设施”这个顺序进行排序。

显然,通过Excel的普通排序是无法做到的(普通的排序是按字母的顺序进行排序的)。这里就需要自定义排序了。

02 自定义排序

Excel自定义排序的操作流程为:

① 在Excel选项中,点击高级,找到编辑自定义列表。

② 定义自己需要排序的顺序,点击确定即可。

③ 选择需要排序的区域,选择“数据 > 排序”。

④ 选择依据排序的列,和自定义排序,找到之前定义好的顺序即可完成。

03 Python解决

当然,最后还是讲解下如何通过Python解决自定义排序吧。

在sort_value方法中没找到可以解决的办法,所以采用了最笨的方法。

① 读入数据,定义好排序的列表。

② 定义空的DataFrame,通过循环过滤数据。

③ 最后将数据进行合并。

import pandas as pd

data = pd.read_excel('测试.xlsx',sheetname='data')
sort_list = ['采石场','工矿用地','能源设施','旅游设施','交通设施','养殖场','农业用地','居民点','其他人工设施']

new_data = pd.DataFrame({'一级类型':[],
                        '面积':[]})

for i in sort_list:
    new_data = pd.concat([new_data,data[data['一级类型'] == i]])

new_data

你可能感兴趣的:(职场办公|自定义排序)