首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >小案例(八):商户信息整理(python)

小案例(八):商户信息整理(python)

作者头像
三猫
发布2020-03-24 10:09:14
发布2020-03-24 10:09:14
1.3K0
举报

戳蓝色字关注我们哟!

在使用商户信息数据时,通常直接拿到的数据会存在数据信息杂乱都情况,需要经过一定清洗整理才可以使用,本次就通过一个小案例介绍商户信息数据清理的基本方法。

私心放个三猫个人show,请开始夸

1

需求目的

本次小案例中,我们的样例数据是上海几家商户及其地址信息,其中地址信息包括市、区、具体门牌号,但所有信息均未进行拆分,因此无法对商户名称及地址信息进行更好的应用整理。原始数据如下?

我们希望通过一系列整理,可以把数据拆分成商户名称、城市、区、详细地址的格式,并且将商户名称后面括号中的内容去掉,目标结果如下?

2

知识点

  • rfind():返回字符串最后一次出现的位置 根据官方给出的例子,我们要找到“is”最后出现的位置,“is”最后出现的地方前面分别是“t”,“h”,“i”,“s”,“ ”五个字符,最后出现的“is”位于第六个字符处,所以返回结果为5(python中第一个位置从0开始)。
代码语言:javascript
复制
str = "this is really a string example....wow!!!";
substr = "is";
print str.rfind(substr);
#输出结果为:5
  • 正则表达式 python中的re模块可以通过正则表达式实现一系列的字符串匹配功能,其中re.sub()用于替换字符串中的匹配项,'\D'代表除数字以外的任意字符,官方示例中,展示了如何将所有的非数字字符替换为空(即去除所有非数字字符),在本次介绍的案例中我们也用此方法将商户名称后面()中的内容剔除掉。
代码语言:javascript
复制
import re 
phone = "2004-959-559 # 这是一个电话号码"
# 移除非数字的内容
num = re.sub(r'\D', "", phone)
print (num)
#输出结果为:2004959559

3

python代码实现

下面是可以满足需求实现的python代码,主要实现逻辑是:用rfind()逐行进行切分,并通过正则表达式剔除商户名称后面()中内容,生成4个维度的列表;然后把列表整理成字典形式;最后转化为dataframe进行返回。

代码语言:javascript
复制
def organizedData(data):
    # name : 商户名称
    # city : 城市
    # community : 区
    # detail : 详细地址
    
    name = []
    city = []
    community = []
    detail = []

    for line in range(0,data.shape[0]):
        r = data.iloc[line,0].rfind('上海市')
        d = data.iloc[line,0].rfind('区')
        #将店名后面括号中的内容删掉
        name.append(re.sub(r'\([\u4e00-\u9fa5a-zA-Z0-9]*\)','',data.iloc[line,0][0:r]))
        city.append('上海市')
        community.append(data.iloc[line,0][r+3:d+1])
        detail.append(data.iloc[line,0][d+2:])
    
    #将列表转换为字典,然后生成数据框
    c = {"name" : name,
         "city" : city,
         "community":community,
         "detail":detail}
    result = pd.DataFrame(c)
    return result

后台回复“整理”获得完整代码

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习养成记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档