python自动化之pandas库--同值分组合并多个单元格于一个单元格并用分隔符分隔

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()函数的使用

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


  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

激动的兔子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值