本文目录
一、前言
二、Let’s get it
1.基本信息获取
2.读取所有微信名,数据分类
3.获取用户画(只获取用户年龄段)
三、来点有趣的,数据清洗、分析
1.微信名称类型数据可视化分析
2.微信用户年龄段可视化分析
3.词云分析微信名称那些词语、表情包出现更多
四、通过昵称进行情绪分析(大胆猜想)
01 | 微信昵称为全中文
02 | 微信昵称为全英文
03 | 微信昵称带有表情符号
04 | 微信昵称带有职业性质
05 | 微信昵称带偶像名
06 | 微信昵称是四字词
五、附录:参考文档

一、前言

大家好,首先说明的是,这是一篇技术文,也是一篇not技术文,今天分享的是,当我获取了微信小程序英文取名的3500多个微信用户昵称、年龄段后,分析得到下面解果。。。

二、Let's get it

1.基本信息获取
1.访问英文取名的用户基本信接口,获取英文取名用户微信名(NickName)、访问次数(Count)、总数据集(ResponseData),并将微信名存入文件。
1# 获取所有用户数量和相关信息 2def get_json(): 3 # 获取入口 4 search_url = '英文取名用户接口,欢迎扫码使用英文取名,生成一个最适合你的英文名' 5 # 发送http请求,获取请求页面 6 search_response = requests.get(search_url) 7 # 设置编码 8 search_response.encoding = 'UTF-8' 9 # 将页面转变成json代码格式 10 search_json = search_response.json() 11 # 获取我们需要的数据,是列表格式 12 our_data = search_json['ResponseData'] 13 list_len = len(our_data) 14 print('总用户数有:' + str(list_len)) 15 user_visit_numbers = 0 16 data_research = 0 17 NickName = [] 18 for x in our_data: 19 user_numbers = x['Count'] + user_visit_numbers 20 if x['NickName'] == '': 21 data_research += 1 22 NickName.append(x['NickName']) 23 print("微信名获取失败量:"+str(data_research)) 24 print(NickName) 25 name = ['微信名称'] 26 file_test = pd.DataFrame(columns=name, data=NickName) 27 file_test.to_csv(r'I:/data.csv', encoding='utf-8',index=False) 28 print('总访问量:' + str(user_visit_numbers))
运行结果:
1总用户数有:3549 2微信名获取失败量:0 3总访问量:4573
2.读取所有微信名,数据分类
(1)读取微信名
1# 读取文件,取出微信名 2def get_name(): 3 NickName = [] 4 with open('I:/data.csv','r',encoding='utf8') as file : 5 i = 0 6 for line in file: 7 if i == 0: # 去除表头 8 i = 1 9 continue 10 line = line.strip() # 去除换行符 11 NickName.append(line) 12 return NickName
(2)数据分为以下六大类
中文名
变量名
数据类型
全中文昵称
ch_name
list
全英文昵称
en_name
list
中文和数字混合昵称
ch_di_name
list
包含图片表情昵称
img_name
list
其他昵称
other_name
list
1# ch :Chinese 2ch_name_number = 0 3ch_name = [] 4# en :English 5en_name_number = 0 6en_name = [] 7# di : digtal 8di_name_number = 0 9di_name = [] 10# img : image 11img_name_number = 0 12img_name = [] 13# ch_di : Chinese and digtal 14ch_di_name = [] 15# other : other 16oth_name_number = 0 17oth_name = []
(3)数据分类判断
1# 昵称全中文判断 2def is_all_ch(keyword): 3 for c in keyword: 4 # 包含常见中文字符 5 if not ('\u4e00'