提取中文地址描述中的省市区信息

等风来也等你

共 1154字,需浏览 3分钟

 ·

2024-04-10 18:14

f3b6751f663ef4b10fa500d0998d0843.webp


6c865b5638578feacaa805eea9d76cea.webp

实例描述



在一些商用数据中,存在诸多的可用信息供我们分析数据,仅仅地址信息一栏就有很多可用价值,例如按省、市、地区统计分析区域消费水平、产品销量、消费人次等等,但是可能会遇到这样的问题: Excel 表中地址信息中的省市区在一个单元格中,如图 1 所示。 这种情况如何批量提取地址描述中的省市区信息,从而实现按省、市或区统计数据呢?

f3a35e7edfc2486545c928ab7f74057f.webp

1   收货地址数据

本实例将提取地址中的省份,并按省份统计销售金额,效果如图 2 所示。

d59703976f50de6735e6d4bd4e1ef16c.webp

2   提取地址中的省份

6c865b5638578feacaa805eea9d76cea.webp

技术要点


Pandas DataFrame 对象中的 str.split() 内置方法可以实现切分字符串,从而对地址进行切分,我们观察 Excel 表中的地址信息是以空格分隔的,这样就可以使用空格将每个元素分开后存入列表中。

l   切分字符串,分开后存入一列里

series=data[ ' 列名 ' ].str.split( ' ' )

DataFrame 列中字符串以空格 ' ' 分隔开,每个元素分开后存入一列里。

l   切分字符串,分开后存入多列里

series=data[ ' 列名 ' ].str.split( ',' , expand = True )

参数 expand ,这个参数取 True 时,会把切分出来的内容分成多列。

如果只要第一列: series=data[' 列名 '].str.split(' ',expand=True)[0]


6c865b5638578feacaa805eea9d76cea.webp

代码实现

程序代码如下:

import  pandas  as  pd

aa = './data/TB2018.xlsx'

df = pd.DataFrame(pd.read_excel(aa))

series=df[ ' 收货地址 ' ].str.split( ' ' , expand = True )

df[ ' ' ]=series[0]

#df[' '],df[' '],df[' ']=series[0],series[1],series[2]

df1=df.groupby([ " " ])[ " 买家实际支付金额 " ].sum()

print (df1)

df.to_excel( 'test.xlsx' )



22d780d27ce80f4c9d086c4c209fe464.webp


浏览 15
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报