使用散列表进行查找【查找关键词:电话号码,名称】【平方取中法,除留余数法】【开放地址探测法,公共溢出区法】【计算ASL】

Library

import pandas as pd
import numpy as np
import time

读取数据

df = pd.read_excel('重庆市印刷和记录媒介复制业754.xlsx')
df.dropna(axis=0, how='any')  # 去除非数
print("表长为:", len(df))
df.head()
表长为: 754
ID 企业名称 电话 企业地址
0 0 万州区永佳路万德印刷厂 15178905742 重庆市万州区双河口永佳路325号
1 1 覃彩虹 13594410133 重庆市万州区熊家镇古城大道296号
2 2 重庆优得利印刷有限公司 023-65903102 重庆市江津区双福工业园1幢1号
3 3 重庆市开州区森美印刷有限公司 15608330060 重庆市开州区云枫街道平桥社区桔乡路369号门市
4 4 吕兴华 13896015224 重庆市璧山区大路街道天星街23号

get_nums

def get_nums(s):
    '''
    逐位相加其ASCII码
    '''
    s = str(s)
    nums = 0
    for s0 in s:
        if(s0 == '-'):
            continue
        try:
            nums += ord(s0)
        except:
            print("error: ",s)
    return nums
get_nums("重庆优得利印刷有限公司")
276879

平方取中法

df['nums_电话'] = df['电话'].apply(get_nums)
df['nums_电话^2'] = df['nums_电话'].apply(lambda x: np.square(x))
df['nums_企业名称'] = df['企业名称'].apply(get_nums)
# df['nums_电话^4'] = df['nums_电话^2'].apply(lambda x: np.square(x))
df.head()
ID 企业名称 电话 企业地址 nums_电话 nums_电话^2 nums_企业名称
0 0 万州区永佳路万德印刷厂 15178905742 重庆市万州区双河口永佳路325号 577 332929 257952
1 1 覃彩虹 13594410133 重庆市万州区熊家镇古城大道296号 562 315844 94053
2 2 重庆优得利印刷有限公司 023-65903102 重庆市江津区双福工业园1幢1号 559 312481 276879
3 3 重庆市开州区森美印刷有限公司 15608330060 重庆市开州区云枫街道平桥社区桔乡路369号门市 560 313600 364365
4 4 吕兴华 13896015224 重庆市璧山区大路街道天星街23号 569 323761 63703
def get_mid(x):
    '''
    取中间三位数作为地址
    '''
    return int(x/10)%1000
df['adr_电话'] = df['nums_电话^2'].apply(get_mid)
df['adr_企业名称'] = df['nums_企业名称'].apply(get_mid)
df.head(100)
ID 企业名称 电话 企业地址 nums_电话 nums_电话^2 nums_企业名称 adr_电话 adr_企业名称
0 0 万州区永佳路万德印刷厂 15178905742 重庆市万州区双河口永佳路325号 577 332929 257952 292 795
1 1 覃彩虹 13594410133 重庆市万州区熊家镇古城大道296号 562 315844 94053 584 405
2 2 重庆优得利印刷有限公司 023-65903102 重庆市江津区双福工业园1幢1号 559 312481 276879 248 687
3 3 重庆市开州区森美印刷有限公司 15608330060 重庆市开州区云枫街道平桥社区桔乡路369号门市 560 313600 364365 360 436
4 4 吕兴华 13896015224 重庆市璧山区大路街道天星街23号 569 323761 63703 376 370
... ... ... ... ... ... ... ... ... ...
95 95 重庆涵天包装印务有限公司 023-72231721 重庆市涪陵区太极大道34号负一楼 558 311364 318409 136 840
96 96 垫江县金辉印刷厂 13110182246 重庆市垫江县周嘉镇迎春路 557 310249 209484 24 948
97 97 重庆凯翔包装印务有限公司 13709401186 重庆市永川区大安街道办事处大安工业园区 568 322624 321198 262 119
98 98 丰都县蓝图印务有限公司 15803661811 重庆市丰都县三合街道商业二路117号附2号 568 322624 284565 262 456
99 99 重庆毅然包装印刷有限公司 13509402066 重庆市綦江区文龙街道大田湾6号 564 318096 323964 809 396

100 rows × 9 columns

除留余数法

df['adr_电话_1'] = df['nums_电话^2']%
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值