"""
移动网络
134-135-136-137-138-139-147-150-151-152-157-158-159-
178-182-183-184-187-188-1703-1705-1706
###第一位:1#########3|456789;4|7;5|012789;7|8,03,05,06
第二位:
3=4,5,6,7,8,9;
4=7;
5=0,1,2,7,8,9;
7=8,03,05,06;
8=2,3,4,7,8;
第三位:4,5,6,7,8,9
第四位:3,5,6
联通网络:
130-131-132-145-155-156-175-176-186-1704-1707-1708-1709-171
###第一位:1
第二位:
3=0,1,2;
4=5;
5=5,6;
7=5,6,04,07,08,09,1;
8=5,6;
第三位:0,1,2,5,6,
第四位:4,7,8,9
电信网络:
133-149-153-173-177-180-181-189-1700-1701-1702
###第一位:1
第二位:
3=3;
4=9;
5=3;
7=3,7,00,01,02;
8=0,1,9;
第三位:3,9,7,0,1
第四位:0,1,2
"""
import xlrd
import time
import re
time.clock = time.perf_counter
"""
移动 = [r'^13[456789]\d{8}$', r'^147\d{8}$', r'^15[012789]\d{8}$', r'^17[8|03|05|06][\d{8}|\d{7}]$', r'^18[23478]\d{8}$']
联通 = [r'^13[012]\d{8}$', r'^145\d{8}$', r'^15[56]\d{8}$', r'17[56|04|07|08|09|1][\d{8}|\d{7}]$', r'^186\d{8}$']
电信 = [r'^133\d{8}$', r'^149\d{8}$', r'^153\d{8}$', r'^17[37|00|01|02][\d{8}|\d{7}]$', r'^18[019]\d{8}$']
def 统计(data, match, network):
for x in data:
for h in match:
phone_number = re.search(h, x)
if phone_number:
network.append(phone_number)
data.remove(x)
break
else:
continue
"""
def 移动网络(data):
match = [r'^13[456789]\d{8}$', r'^147\d{8}$', r'^15[012789]\d{8}$', r'^17[8|03|05|06][\d{8}|\d{7}]$',
r'^18[23478]\d{8}$']
for h in match:
phone_number = re.search(h, data)
if phone_number:
return True
else:
continue
def 联通网络(data):
match = [r'^13[012]\d{8}$', r'^145\d{8}$', r'^15[56]\d{8}$', r'17[56|04|07|08|09|1]\d{8|7}$', r'^18[56]\d{8}$']
for h in match:
phone_number = re.search(h, data)
if phone_number:
return True
else:
continue
def 电信网络(data):
match = [r'^133\d{8}$', r'^149\d{8}$', r'^153\d{8}$', r'^17[37|00|01|02][\d{8}|\d{7}]$', r'^18[019]\d{8}$']
for h in match:
phone_number = re.search(h, data)
if phone_number:
return True
else:
continue
def 性别(sex):
if sex == '男':
return True
else:
return False
def 年龄(x):
if x > 45:
return True
else:
return False
def 薪资(e):
if e > 8000:
return True
else:
return False
def 薪资1(e):
if e < 3000:
return True
else:
return False
def 公司(x):
match = re.search('传媒', x)
if match:
return True
else:
return False
def 高危地区1(x):
match = re.search('黑龙江', x)
if match:
return True
else:
return False
def 高危地区2(x):
match = re.search('北京', x)
if match:
return True
else:
return False
def 高危地区3(x):
match = re.search('福建', x)
if match:
return True
else:
return False
def 高危地区4(x):
match = re.search('四川', x)
if match:
return True
else:
return False
读取数据 = xlrd.open_workbook("百度员工人员信息.xls")
surface1 = 读取数据.sheet_by_index(0)
p = surface1.col_values(5)[1:]
a = surface1.col_values(8)[1:]
d = surface1.col_values(7)[1:]
s = surface1.col_values(11)[1:]
n = surface1.col_values(13)[1:]
m = surface1.col_values(9)[1:]
g = len(p)
移动 = list(filter(移动网络, p))
联通 = list(filter(联通网络, p))
电信 = list(filter(电信网络, p))
男 = list(filter(性别, a))
岁数 = list(filter(年龄, d))
工资 = list(filter(薪资, s))
工资1 = list(filter(薪资1, s))
传媒 = list(filter(公司, n))
黑龙江 = list(filter(高危地区1, m))
北京 = list(filter(高危地区2, m))
福建 = list(filter(高危地区3, m))
四川 = list(filter(高危地区4, m))
print('百度统计员工人数:', g)
print("使用移动网络的人数:", len(移动), '人')
print("使用联通网络的人数:", len(联通), '人')
print("使用电信网络的人数:", len(电信), '人')
print('================================')
print("全公司男性人数:", len(男), '人\n', '全公司女性人数:', g - len(男), '人')
print('公司年龄超过45岁的人数:', len(岁数))
print('公司薪资超过8000的人数:', len(工资), '人')
print('公司薪资低于3000的人数:', len(工资1), '人')
print('去传媒公司的人数:', len(传媒), '人')
print('高危地区分别:', '黑龙江:', len(黑龙江), '人\n北京:', len(北京), '人\n福建:', len(福建), '人\n四川:', len(四川), '人')