图书馆或者书店从馆配商处获得新书目录,筛选书目之前,最好进行预处理,包括删除定价过高或过低的、不需要的类,本科以上院校,会删除高职高专等图书,excel处理书目,非常麻烦,看看如何用pandas快速预处理。
1、导入书目
import pandas as pd
data = pd.read_excel(r'书目.xlsx')
2、#有的馆配商数据不规范,包含多余的空格,先数据清洗:去掉\t,\n等多余换行符
data = data.replace('\t','', regex=True).replace('\n','',regex=True)
3、#经济下行,图书馆的经费也是不多,太贵的不舍得买,太便宜的质量不够好,去掉定价250以上,30以下的
data = data[(data['定价'] <= 250)
& (data['定价'] >= 30)]
4、#按分类号排序
data = data.sort_values(by = '分类号')
5、#设置一列简单分类号,便于统计各个类购买量
data['简单分类号'] = data['分类号'].str[:2]
6、#筛选符合要求的分类号,与学校学科无关的类号的图书直接删除
select_list = ['N','O','P','Q','S','TB','TM','TN','TP','TS']
select_list = '|'.join(select_list)
select_data = data[data['简单分类号'].str.contains(select_list)]
7、去掉含有一些不想要的关键词的书
select_not_list = ['高职','高专','职业','中职','中专']
select_not_list = '|'.join(select_not_list)
#select_not_data = select_data[~select_data['使用对象'].str.contains(select_not_list)|~select_data['内容提要'].str.contains(select_not_list)|~select_data['书名'].str.contains(select_not_list)]
select_not_data = select_data[(~select_data['书名'].str.contains(select_not_list)) & (~select_data['使用对象'].str.contains(select_not_list)) & (~select_data['内容提要'].str.contains(select_not_list))]
8、#处理差不多了,添加复本列
data = select_not_data
data['复本'] = 1
9、保存
data.to_excel(excel_writer = r'处理的书目.xlsx')
网友评论