【python数据处理】根据某一字段或多个字段多行空值合并另一字段中的多行数据

Excel中根据某一字段多行空值合并另一字段中的多行数据

  • 1 背景
  • 2 问题解决过程详细梳理

1 背景

由于2022年中科院期刊分区出来后,需要对目前领域类的期刊重新进行收集和归类,目前收集到的文献存放在word中,具体如下(只截取部分期刊信息)
【python数据处理】根据某一字段或多个字段多行空值合并另一字段中的多行数据_第1张图片
如果把信息直接复制粘贴到Excel中,小类分区字段中的内容如果是多个分区,就会占多个单元格
【python数据处理】根据某一字段或多个字段多行空值合并另一字段中的多行数据_第2张图片

问题就出来了:解决按照大类和小类分区的筛选问题,即选择大类或者小类都可以快速实现分区的筛选

2 问题解决过程详细梳理

将excel文件加载到python中,系统会自动把多余的单元格用空值进行填充
【python数据处理】根据某一字段或多个字段多行空值合并另一字段中的多行数据_第3张图片
解决问题的思路就是将空白的地方按照向前填充的方式,然后按照分组汇总依次把多行数据合并成为单行数据。首先解决空白数据填充问题,代码和执行结果如下
【python数据处理】根据某一字段或多个字段多行空值合并另一字段中的多行数据_第4张图片
然后再解决分组合并数据多行转化为一行的问题,代码和执行结果如下(输出结果只截取部分)

【python数据处理】根据某一字段或多个字段多行空值合并另一字段中的多行数据_第5张图片
接着把整个分组后的结果重新设置索引,并提取大区分类的编号转化为整型数值,代码和执行结果如下(输出结果只截取部分)
【python数据处理】根据某一字段或多个字段多行空值合并另一字段中的多行数据_第6张图片
解决小区分类的编号提取问题:这里的思路是按照合并时候的中文分号符号进行split()分割后提取第一个元素即为编号,但是首先对中文分号符号是否存在进行判断,如果不存在直接就提取第一个元素就是编号,代码和执行结果如下(输出结果只截取部分)。
【python数据处理】根据某一字段或多个字段多行空值合并另一字段中的多行数据_第7张图片
为了方便后续按照小区进行筛选,单独按照1-4区进行字段的提取,代码和执行结果如下(输出结果只截取部分)。
【python数据处理】根据某一字段或多个字段多行空值合并另一字段中的多行数据_第8张图片
最后把数据保存到本地的Excel文件中。
在这里插入图片描述

打开该文件,最终结果解决问题。
【python数据处理】根据某一字段或多个字段多行空值合并另一字段中的多行数据_第9张图片

全选后进入筛选模式(快捷键Ctrl A后Ctrl T),完美进入筛选界面
【python数据处理】根据某一字段或多个字段多行空值合并另一字段中的多行数据_第10张图片
由于Excel文件易损坏,可以考虑把文件存放在数据库中后续如果更新期刊信息也可以进行数据的追加,数据的安全性也更高一些,代码和执行结果如下(需要现在Mysql数据库中创建一个safety and accident数据库)
【python数据处理】根据某一字段或多个字段多行空值合并另一字段中的多行数据_第11张图片
数据库界面刷新后,出现期刊信息
【python数据处理】根据某一字段或多个字段多行空值合并另一字段中的多行数据_第12张图片
直接借助数据库的筛选功能就可以进行分区的查找,比如按照大类1区进行期刊查找,输出结果如下
【python数据处理】根据某一字段或多个字段多行空值合并另一字段中的多行数据_第13张图片

你可能感兴趣的:(#,python数据处理,python,Excel,空值,合并单元格,期刊)