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进行投诉反馈,一经查实,立即删除!