本文介绍: 同一个地类图斑可能会需要挂接多个举证编号,并用“/”分隔开

1.场景

摘要:变更调查外业举证图斑编号挂接
每年都要进行变更调查的工作,外业举证,内业处理相当耗时间,现为提高变更调查工作内业效率,编写程序


2.问题描述

摘要:同一个图斑可能涉及到挂接多个编号问题
由于国家下发图斑与内业自主变更图斑有可能会存在重叠的情况,就意味着同一个地类图斑可能会需要挂接多个举证编号,并用“/”分隔开。看图就明白意思了:

原始表格
在这里插入图片描述
整理后的表格
整理后表格
但是我发现一个问题,要是空间位置的话可以使用Arcgis的Spatial Join实现,但若是没有空间位置,仅根据属性表进行挂接的话就有点麻烦了,使用VB也行,但是我不会。于是我就想用python实现一下这个功能

本程序的代码简单,仅有几行,效果还是不错的。

3.运行环境

就本人的运行环境简要介绍一下:

编译环境及程序配置
1.Microsoft Visual Studio Code
2.Python 3.9.1
3.pandas ==> 1.2.5
2.Microsoft office 2019

4.运行代码

废话不多说,直接上代码:

# 测试数据  test_Excel合并行.xlsx

BSM	JCBH
DLTB000001	A102
DLTB000002	A103
DLTB000003	A104
DLTB000003	A105
DLTB000005	BB106
DLTB000003	A107
DLTB000007	A108
DLTB000002	IIZ109
DLTB000009	A110
DLTB000011	A111
DLTB000005	A112
DLTB000012	A113
DLTB000006	A114


import pandas as pd

# 读取 Excel 表格
df = pd.read_excel(r"G:test_Excel合并行.xlsx")

#用于存放处理结果
result=pd.DataFrame()

# 对BSM列内容分组
grouped = df.groupby('BSM')

# 使用自定义函数聚合列'JCBH'中的值,并用“/”分隔开
result["JCBH_Merged"]= grouped['JCBH'].agg(lambda x: '/'.join(x.astype(str)))

#print (result["Merged"])
result.to_excel('merged.xlsx')
print ("Done!")

5.小结:

轻松解决问题
这个问题有以下几个关键点:
a.使用groupby()函数使用
b.自定义聚合函数agg()的使用
c.匿名函数lambda()函数的使用

感兴趣小伙伴可以整理一下这三个函数的适用方法,到时@我,我会去给你点赞的哦!!


原文地址:https://blog.csdn.net/u014685432/article/details/128990797

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_12247.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注