背景
- 读入一个json数据
- 然后进行规整为数据框
- 并和已有数据框进行merge 再进行后续分析
读入json数据
让我们先来看看实际的数据是长什么样子的:截取了前八行
可以看到数据是很混乱的,我们首先需要确定我们有多少列,即列名首先得确定,然后并不是每一行的数据都有所有的列!那该咋办呢?
思路:
- 先找到json数据读取的函数,这个Google一搜就有,并导入相应的库,最后其实就一个json库 导入即可!
- 然后使用open函数 并进行正确的编码,逐行读取 使用json.loads函数
- 那逐行读取之后怎么办呢?怎么形成数据框呢?怎么应对每一行可能列不一样呢?
- 能不能这样?就是先创建一个空的数据框,把所有出现的列先都放进去,然后逐行进行添加!进行一个for循环,等等,好像还没说清楚?每次逐行读取之后,都是一个字典!然后使用 .items()函数 对k v 进行一个遍历 然后对数据框进行添加值,这样应该清楚了?是的!清爽的拔的鸟~
import json
import time
import pandas as pd
data = open('gexiangDevid_profile_20190121', encoding='utf-8').read()
data[:100]
'{"devid": "device_uuid"}\n{"devid": "CQk5NTM4ZTg3MzhhZDYxNjBmCTA4MTVmODliNTYyMDFlMDQ%3D"}\n{"devid": "'
创建空的DataFrame
all_columns = ['doc_category',
'doc_interest',
'gender',
'age',
'devid',
'location_code',
'video_category',
'video_interest']
df_empty = pd.DataFrame(columns=all_columns, index=range(24150))
# 这其中就有一个坑 就是得先把index定义了!不然无法循环遍历增加值!
df_empty.head()
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | |
---|---|---|---|---|---|---|---|---|
0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
2 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
3 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
4 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
批量读入数据思路
测试
all_columns = ['doc_category',
'doc_interest',
'gender',
'age',
'devid',
'location_code',
'video_category',
'video_interest']
all_columns
['doc_category',
'doc_interest',
'gender',
'age',
'devid',
'location_code',
'video_category',
'video_interest']
# 先定义所有的列 然后一个一个赋值
df_empty = pd.DataFrame(columns=all_columns, index=range(24150))
# 定义索引初始值
i = 0
for line in open('gexiangDevid_profile_20190121', encoding='UTF-8'):
# 对前十行进行一个测试
if i <= 10:
# print(line)
data_list = json.loads(line) # 读取每一行,将每一行读取成为json文件
# print(data_list)
# 将所有的key打印出来 然后循环遍历取其值放在DataFrame里
for k,v in data_list.items():
df_empty[k][i] = v
i += 1
else:
break
df_empty[:10]
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | |
---|---|---|---|---|---|---|---|---|
0 | NaN | NaN | NaN | NaN | device_uuid | NaN | NaN | NaN |
1 | NaN | NaN | NaN | NaN | CQk5NTM4ZTg3MzhhZDYxNjBmCTA4MTVmODliNTYyMDFlMD... | NaN | NaN | NaN |
2 | NaN | NaN | NaN | NaN | CQlhNWY2YWVjODFhYWNjOTFjCTA4MTVmODliNTYyMDFlMD... | NaN | NaN | NaN |
3 | NaN | NaN | NaN | NaN | CQkxY2M4MTMyMDgxMjhhMzljCTA4MTVmODliNTYyMDFlMD... | NaN | NaN | NaN |
4 | NaN | NaN | NaN | NaN | CQlmNWNkY2U0NDM2MTBjYjkyCTA4MTVmODliNTYyMDFlMD... | NaN | NaN | NaN |
5 | NaN | NaN | NaN | NaN | CQliY2U2OGM0ODUxZDdkNDEJMDgxNWY4OWI1NjIwMWUwNA... | NaN | NaN | NaN |
6 | NaN | NaN | NaN | NaN | CQljZDgwM2E1NGZjNmY5ZmRlCTA4MTVmODliNTYyMDFlMD... | NaN | NaN | NaN |
7 | [娱乐, 社会, 育儿, 美食, 时尚, 健康, 历史, 体育, 动物, 艺术, 情感, 家... | [娱乐_纪实综艺, 人文_变形计, 娱乐_综艺, 娱乐_真人秀, 娱乐_明星八卦, 娱乐_纪... | 0 | 24 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 山西省,太原市, | [娱乐/综艺, 娱乐/电视, 萌宝/默认, 美食/吃播, 娱乐/明星八卦, 动物/萌系动物,... | [娱乐_综艺, 娱乐_真人秀, 娱乐_电视剧, 娱乐_妈妈是超人, 体育_傅园慧, 娱乐_冉... |
8 | NaN | NaN | NaN | NaN | CQljOTA4ODliODQ4MDJkOGY2CTA4MTVmODliNTYyMDFlMD... | NaN | NaN | NaN |
9 | NaN | NaN | NaN | NaN | CQlhNmZhNmVmYTBmYjFlYmYJMDgxNWY4OWI1NjIwMWUwNA... | NaN | NaN | NaN |
测试成功!!!撒花庆祝!
正式读入数据
# 先定义所有的列 然后一个一个赋值
df_empty = pd.DataFrame(columns=all_columns, index=range(24149))
# 定义索引初始值
i = 0
for line in open('gexiangDevid_profile_20190121', encoding='UTF-8'):
# print('正在插入第 %d 行数据,总共有24149行' % (i+1))
data_list = json.loads(line) # 读取每一行,将每一行读取成为json文件
# 将所有的key打印出来 然后循环遍历取其值放在DataFrame里
for k,v in data_list.items():
df_empty[k][i] = v
i += 1
print(df_empty.shape)
df_empty.head()
(24149, 8)
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | |
---|---|---|---|---|---|---|---|---|
0 | NaN | NaN | NaN | NaN | device_uuid | NaN | NaN | NaN |
1 | NaN | NaN | NaN | NaN | CQk5NTM4ZTg3MzhhZDYxNjBmCTA4MTVmODliNTYyMDFlMD... | NaN | NaN | NaN |
2 | NaN | NaN | NaN | NaN | CQlhNWY2YWVjODFhYWNjOTFjCTA4MTVmODliNTYyMDFlMD... | NaN | NaN | NaN |
3 | NaN | NaN | NaN | NaN | CQkxY2M4MTMyMDgxMjhhMzljCTA4MTVmODliNTYyMDFlMD... | NaN | NaN | NaN |
4 | NaN | NaN | NaN | NaN | CQlmNWNkY2U0NDM2MTBjYjkyCTA4MTVmODliNTYyMDFlMD... | NaN | NaN | NaN |
df_empty.tail()
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | |
---|---|---|---|---|---|---|---|---|
24144 | NaN | NaN | NaN | NaN | CQlkYTJjN2ViY2ZhMDI2ODA4CTAwYzc1YmQyYmQ2ZWI2Yj... | NaN | NaN | NaN |
24145 | NaN | NaN | NaN | NaN | A100004E5D269B | NaN | [娱乐/电影, 萌宝/默认] | [娱乐_电影, 娱乐_动作片, 娱乐_爱情影视剧, 娱乐_科幻电影, 搞笑_萌宝, 娱乐_恐... |
24146 | [育儿, 娱乐, 社会, 健康, 旅游, 家居, 人文, 教育, 情感, 体育, 军事, 动... | [育儿_婴幼儿护理, 育儿_宝宝健康, 娱乐_明星八卦, 育儿_婴儿喂养, 育儿_辅食, 育... | NaN | NaN | A100004EC54011 | NaN | [萌宝/默认, 音乐/默认, 娱乐/综艺, 娱乐/电视, 育儿/婴幼儿护理, 娱乐/明星八卦] | [搞笑_萌宝, 育儿_婴幼儿护理, 育儿_宝宝健康, 育儿_婴儿喂养, 游戏_冯提莫, 互联... |
24147 | NaN | NaN | NaN | NaN | A1000050643306 | NaN | NaN | NaN |
24148 | NaN | NaN | NaN | NaN | NULL | NaN | NaN | NaN |
统计缺失率的情况
df_empty.isnull().sum()
doc_category 12740
doc_interest 12752
gender 11566
age 11566
devid 0
location_code 11923
video_category 13717
video_interest 13718
dtype: int64
- 缺失情况还是比较严重
将已有数据和上述的进行merge
上述数据概况
print(df_empty.shape)
df_empty.head()
(24149, 8)
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | |
---|---|---|---|---|---|---|---|---|
0 | NaN | NaN | NaN | NaN | device_uuid | NaN | NaN | NaN |
1 | NaN | NaN | NaN | NaN | CQk5NTM4ZTg3MzhhZDYxNjBmCTA4MTVmODliNTYyMDFlMD... | NaN | NaN | NaN |
2 | NaN | NaN | NaN | NaN | CQlhNWY2YWVjODFhYWNjOTFjCTA4MTVmODliNTYyMDFlMD... | NaN | NaN | NaN |
3 | NaN | NaN | NaN | NaN | CQkxY2M4MTMyMDgxMjhhMzljCTA4MTVmODliNTYyMDFlMD... | NaN | NaN | NaN |
4 | NaN | NaN | NaN | NaN | CQlmNWNkY2U0NDM2MTBjYjkyCTA4MTVmODliNTYyMDFlMD... | NaN | NaN | NaN |
已有数据
print(df.shape)
df.head()
(24148, 8)
imei | aid | device_uuid | 标签 | cut_label | high_label | tf_word | tr_word | |
---|---|---|---|---|---|---|---|---|
0 | 352571071345916 | 508ba9c367ab4259 | CQk5NTM4ZTg3MzhhZDYxNjBmCTA4MTVmODliNTYyMDFlMD... | 女,25-34岁,父母,0-3岁小孩父母,妈妈,母婴,0-6岁小孩父母,0-14岁小孩父母,... | 女 , 25 - 34 岁 , 父母 , 0 - 3 岁 小孩 父母 , 妈妈 , 母婴 ,... | [消费水平_高, 信用卡-高, 网购-高, 新闻·资讯-高] | [数码科技, 电视直播, 在线视频, 父母, 聊天] | [数码科技, 父母, 汽车, 理财, 拍摄] |
1 | 352571071345916 | 508ba9c367ab4259 | CQlhNWY2YWVjODFhYWNjOTFjCTA4MTVmODliNTYyMDFlMD... | 女,25-34岁,父母,0-3岁小孩父母,妈妈,母婴,0-6岁小孩父母,0-14岁小孩父母,... | 女 , 25 - 34 岁 , 父母 , 0 - 3 岁 小孩 父母 , 妈妈 , 母婴 ,... | [消费水平_高, 信用卡-高, 网购-高, 新闻·资讯-高] | [数码科技, 电视直播, 在线视频, 父母, 聊天] | [数码科技, 父母, 汽车, 理财, 拍摄] |
2 | 352571071345916 | 508ba9c367ab4259 | CQkxY2M4MTMyMDgxMjhhMzljCTA4MTVmODliNTYyMDFlMD... | 女,25-34岁,父母,0-3岁小孩父母,妈妈,母婴,0-6岁小孩父母,0-14岁小孩父母,... | 女 , 25 - 34 岁 , 父母 , 0 - 3 岁 小孩 父母 , 妈妈 , 母婴 ,... | [消费水平_高, 信用卡-高, 网购-高, 新闻·资讯-高] | [数码科技, 电视直播, 在线视频, 父母, 聊天] | [数码科技, 父母, 汽车, 理财, 拍摄] |
3 | 352571071345916 | 508ba9c367ab4259 | CQlmNWNkY2U0NDM2MTBjYjkyCTA4MTVmODliNTYyMDFlMD... | 女,25-34岁,父母,0-3岁小孩父母,妈妈,母婴,0-6岁小孩父母,0-14岁小孩父母,... | 女 , 25 - 34 岁 , 父母 , 0 - 3 岁 小孩 父母 , 妈妈 , 母婴 ,... | [消费水平_高, 信用卡-高, 网购-高, 新闻·资讯-高] | [数码科技, 电视直播, 在线视频, 父母, 聊天] | [数码科技, 父母, 汽车, 理财, 拍摄] |
4 | 352571071345916 | 508ba9c367ab4259 | CQliY2U2OGM0ODUxZDdkNDEJMDgxNWY4OWI1NjIwMWUwNA... | 女,25-34岁,父母,0-3岁小孩父母,妈妈,母婴,0-6岁小孩父母,0-14岁小孩父母,... | 女 , 25 - 34 岁 , 父母 , 0 - 3 岁 小孩 父母 , 妈妈 , 母婴 ,... | [消费水平_高, 信用卡-高, 网购-高, 新闻·资讯-高] | [数码科技, 电视直播, 在线视频, 父母, 聊天] | [数码科技, 父母, 汽车, 理财, 拍摄] |
开始merge
技巧:
- 对两个表进行merge时候,如果列名不一样,可以采用这种 left_on right_on 的方式进行指定!
df_net_gt = pd.merge(df_empty, df, how='left', left_on='devid', right_on='device_uuid')
print(df_net_gt.shape)
df_net_gt.head()
(38317, 16)
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | imei | aid | device_uuid | 标签 | cut_label | high_label | tf_word | tr_word | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | NaN | NaN | NaN | NaN | device_uuid | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1 | NaN | NaN | NaN | NaN | CQk5NTM4ZTg3MzhhZDYxNjBmCTA4MTVmODliNTYyMDFlMD... | NaN | NaN | NaN | 352571071345916 | 508ba9c367ab4259 | CQk5NTM4ZTg3MzhhZDYxNjBmCTA4MTVmODliNTYyMDFlMD... | 女,25-34岁,父母,0-3岁小孩父母,妈妈,母婴,0-6岁小孩父母,0-14岁小孩父母,... | 女 , 25 - 34 岁 , 父母 , 0 - 3 岁 小孩 父母 , 妈妈 , 母婴 ,... | [消费水平_高, 信用卡-高, 网购-高, 新闻·资讯-高] | [数码科技, 电视直播, 在线视频, 父母, 聊天] | [数码科技, 父母, 汽车, 理财, 拍摄] |
2 | NaN | NaN | NaN | NaN | CQlhNWY2YWVjODFhYWNjOTFjCTA4MTVmODliNTYyMDFlMD... | NaN | NaN | NaN | 352571071345916 | 508ba9c367ab4259 | CQlhNWY2YWVjODFhYWNjOTFjCTA4MTVmODliNTYyMDFlMD... | 女,25-34岁,父母,0-3岁小孩父母,妈妈,母婴,0-6岁小孩父母,0-14岁小孩父母,... | 女 , 25 - 34 岁 , 父母 , 0 - 3 岁 小孩 父母 , 妈妈 , 母婴 ,... | [消费水平_高, 信用卡-高, 网购-高, 新闻·资讯-高] | [数码科技, 电视直播, 在线视频, 父母, 聊天] | [数码科技, 父母, 汽车, 理财, 拍摄] |
3 | NaN | NaN | NaN | NaN | CQkxY2M4MTMyMDgxMjhhMzljCTA4MTVmODliNTYyMDFlMD... | NaN | NaN | NaN | 352571071345916 | 508ba9c367ab4259 | CQkxY2M4MTMyMDgxMjhhMzljCTA4MTVmODliNTYyMDFlMD... | 女,25-34岁,父母,0-3岁小孩父母,妈妈,母婴,0-6岁小孩父母,0-14岁小孩父母,... | 女 , 25 - 34 岁 , 父母 , 0 - 3 岁 小孩 父母 , 妈妈 , 母婴 ,... | [消费水平_高, 信用卡-高, 网购-高, 新闻·资讯-高] | [数码科技, 电视直播, 在线视频, 父母, 聊天] | [数码科技, 父母, 汽车, 理财, 拍摄] |
4 | NaN | NaN | NaN | NaN | CQlmNWNkY2U0NDM2MTBjYjkyCTA4MTVmODliNTYyMDFlMD... | NaN | NaN | NaN | 352571071345916 | 508ba9c367ab4259 | CQlmNWNkY2U0NDM2MTBjYjkyCTA4MTVmODliNTYyMDFlMD... | 女,25-34岁,父母,0-3岁小孩父母,妈妈,母婴,0-6岁小孩父母,0-14岁小孩父母,... | 女 , 25 - 34 岁 , 父母 , 0 - 3 岁 小孩 父母 , 妈妈 , 母婴 ,... | [消费水平_高, 信用卡-高, 网购-高, 新闻·资讯-高] | [数码科技, 电视直播, 在线视频, 父母, 聊天] | [数码科技, 父母, 汽车, 理财, 拍摄] |
看各列缺失的情况
df_net_gt.isnull().sum()
doc_category 25452
doc_interest 25464
gender 24614
age 24614
devid 0
location_code 24971
video_category 26653
video_interest 26654
imei 14816
aid 14816
device_uuid 14816
标签 14816
cut_label 14816
high_label 14816
tf_word 14816
tr_word 14816
dtype: int64
删去任一为缺失值的
业务解释:
- 最后是看[‘doc_category’, ‘video_category’]两列的一个匹配情况 所以这两列不能有缺失值!
- 同时id也不能有缺失值,不然无法进行个人的一个对应
技巧:
- 缺失值的删除,如果指定特定的列,使用subset参数!
- 统计各列的缺失的情况:.isnull().sum()函数
df_net_gt = df_net_gt.dropna(subset=['doc_category', 'video_category'])
print(df_net_gt.shape)
df_net_gt.head()
(11323, 16)
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | imei | aid | device_uuid | 标签 | cut_label | high_label | tf_word | tr_word | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
7 | [娱乐, 社会, 育儿, 美食, 时尚, 健康, 历史, 体育, 动物, 艺术, 情感, 家... | [娱乐_纪实综艺, 人文_变形计, 娱乐_综艺, 娱乐_真人秀, 娱乐_明星八卦, 娱乐_纪... | 0 | 24 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 山西省,太原市, | [娱乐,综艺, 娱乐,电视, 萌宝,默认, 美食,吃播, 娱乐,明星八卦, 动物,萌系动物,... | [娱乐_综艺, 娱乐_真人秀, 娱乐_电视剧, 娱乐_妈妈是超人, 体育_傅园慧, 娱乐_冉... | 352571071345916 | 508ba9c367ab4259 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 女,25-34岁,父母,0-3岁小孩父母,妈妈,母婴,0-6岁小孩父母,0-14岁小孩父母,... | 女 , 25 - 34 岁 , 父母 , 0 - 3 岁 小孩 父母 , 妈妈 , 母婴 ,... | [消费水平_高, 信用卡-高, 网购-高, 新闻·资讯-高] | [数码科技, 电视直播, 在线视频, 父母, 聊天] | [数码科技, 父母, 汽车, 理财, 拍摄] |
11 | [体育, 娱乐, 社会, 房产, 要闻, 人文, 健康, 历史, 手机, 数码, 教育, 美... | [体育_nba, 体育_cba, 体育_休斯顿火箭, 娱乐_综艺, 体育_林书豪, 娱乐_电... | 0 | 30 | CQkzOTAzZmZiNWI4OTE1MDRjCTM2NTkzMjU1MzU0YjMwOT... | 上海市,上海市, | [娱乐,电视, 娱乐,综艺, 娱乐,电影, 小品,默认, 体育,默认, 体育,CBA, 体育... | [娱乐_电视剧, 娱乐_综艺, 娱乐_喜剧, 娱乐_电影, 艺术_小品, 体育_nba, 娱... | 352936090428771 | 3903ffb5b891504c | CQkzOTAzZmZiNWI4OTE1MDRjCTM2NTkzMjU1MzU0YjMwOT... | 男,25-34岁,消费水平_高,未婚,求职中,求职中_低,白领,大陆,一线城市,异性恋,有车... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 未婚 , 求职 中 , 求职 中 _ ... | [消费水平_高, 商务旅行-高, 爱车-高, 新闻·资讯-高, 电视直播-高] | [电视直播, 在线视频, 聊天, 外卖, 办公] | [生活, 办公, 金融, 时尚, 新闻] |
12 | [社会, 娱乐, 健身, 历史, 军事, 汽车, 情感, 健康, 体育, 财经, 手机, 旅... | [健身_健身, 军事_武器装备, 健身_增肌, 军事_枪械, 娱乐_明星八卦, 社会_违法犯... | 0 | 38 | CQk3ZmE1ZmY4Njg5ZTgyYWFjCTFhNGRkZGFjNzEwYjdlY2... | 陕西省,宝鸡市, | [娱乐,电视, 军事,装备, 娱乐,电影, 科技,科技趣闻, 奇闻趣事,默认, 社会,违法犯... | [娱乐_电视剧, 军事_武器装备, 军事_枪械, 娱乐_电影, 军事_冷兵器, 科技_科学实... | 352936095439450 | 7fa5ff8689e82aac | CQk3ZmE1ZmY4Njg5ZTgyYWFjCTFhNGRkZGFjNzEwYjdlY2... | 男,35-44岁,消费水平_高,未婚,白领,大陆,二线城市,异性恋,有车,金融理财,股票交易... | 男 , 35 - 44 岁 , 消费水平 _ 高 , 未婚 , 白领 , 大陆 , 二线 城... | [消费水平_高, 新闻·资讯-高, 听书-高, 在线视频-高, 在线音乐-高] | [新闻, 在线视频, 休闲, 聊天, 办公] | [新闻, 理财, 打车, 休闲, 办公] |
13 | [社会, 娱乐, 搞笑, 手机, 财经, 互联网, 要闻, 教育, 时尚, 体育, 房产, ... | [搞笑_搞笑, 搞笑_搞笑gif, 娱乐_明星八卦, 社会_负面新闻, 社会_违法犯罪, 时... | 1 | 37 | CQk0YzcyODAwYjkxOGQyZDQ5CVNTMkxITUI3NzE0MDEyOT... | 山东省,青岛市, | [动物,默认, 社会,事故, 社会,违法犯罪, 搞笑,默认, 美女,默认, 社会,默认, 科... | [动物_野生动物, 社会_事故, 社会_交通事故, 社会_违法犯罪, 社会_负面新闻, 动物... | 353014080394731 | 4c72800b918d2d49 | CQk0YzcyODAwYjkxOGQyZDQ5CVNTMkxITUI3NzE0MDEyOT... | 男,25-34岁,消费水平_高,未婚,求职中,求职中_低,白领,大陆,二线城市,异性恋,金融... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 未婚 , 求职 中 , 求职 中 _ ... | [消费水平_高, 新闻·资讯-高, 天气查询-高] | [在线视频, 聊天, 外卖, 办公, 网购] | [音乐, 图片, 休闲, 新闻, 办公] |
14 | [娱乐, 社会, 手机, 美食, 人文, 财经, 历史, 时尚, 汽车, 旅游, 体育, 数... | [娱乐_明星八卦, 娱乐_电影, 娱乐_综艺, 娱乐_电视剧, 娱乐_当红小生, 娱乐_郭德... | 0 | 27 | CQliZjg0ZDgzMWIyMTZjNjM4CTk4ODk1YTMxNGQzNTM1ND... | 天津市,天津市, | [娱乐,综艺, 娱乐,电视, 娱乐,明星八卦, 娱乐,电影, 社会,违法犯罪, 科技,科技趣... | [娱乐_综艺, 娱乐_明星八卦, 娱乐_喜剧, 娱乐_电影, 社会_违法犯罪, 财经_王思聪... | 354765080647787 | bf84d831b216c638 | CQliZjg0ZDgzMWIyMTZjNjM4CTk4ODk1YTMxNGQzNTM1ND... | 男,25-34岁,消费水平_高,已婚,白领,大陆,二线城市,异性恋,有车,家庭主购者,金融理... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 已婚 , 白领 , 大陆 , 二线 城... | [消费水平_高, 爱车-高, 新闻·资讯-高, 社区-高, 拍摄美化-高] | [电视直播, 在线视频, 聊天, 办公, 网购] | [天津市, 办公, 拍摄, 新闻, 铃声] |
df_net_gt.isnull().sum()
doc_category 0
doc_interest 17
gender 2584
age 2584
devid 0
location_code 2759
video_category 0
video_interest 3
imei 5462
aid 5462
device_uuid 5462
标签 5462
cut_label 5462
high_label 5462
tf_word 5462
tr_word 5462
dtype: int64
df_net_gt = df_net_gt.dropna(subset=['device_uuid'])
print(df_net_gt.shape)
df_net_gt.head()
(5861, 16)
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | imei | aid | device_uuid | 标签 | cut_label | high_label | tf_word | tr_word | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
7 | [娱乐, 社会, 育儿, 美食, 时尚, 健康, 历史, 体育, 动物, 艺术, 情感, 家... | [娱乐_纪实综艺, 人文_变形计, 娱乐_综艺, 娱乐_真人秀, 娱乐_明星八卦, 娱乐_纪... | 0 | 24 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 山西省,太原市, | [娱乐,综艺, 娱乐,电视, 萌宝,默认, 美食,吃播, 娱乐,明星八卦, 动物,萌系动物,... | [娱乐_综艺, 娱乐_真人秀, 娱乐_电视剧, 娱乐_妈妈是超人, 体育_傅园慧, 娱乐_冉... | 352571071345916 | 508ba9c367ab4259 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 女,25-34岁,父母,0-3岁小孩父母,妈妈,母婴,0-6岁小孩父母,0-14岁小孩父母,... | 女 , 25 - 34 岁 , 父母 , 0 - 3 岁 小孩 父母 , 妈妈 , 母婴 ,... | [消费水平_高, 信用卡-高, 网购-高, 新闻·资讯-高] | [数码科技, 电视直播, 在线视频, 父母, 聊天] | [数码科技, 父母, 汽车, 理财, 拍摄] |
11 | [体育, 娱乐, 社会, 房产, 要闻, 人文, 健康, 历史, 手机, 数码, 教育, 美... | [体育_nba, 体育_cba, 体育_休斯顿火箭, 娱乐_综艺, 体育_林书豪, 娱乐_电... | 0 | 30 | CQkzOTAzZmZiNWI4OTE1MDRjCTM2NTkzMjU1MzU0YjMwOT... | 上海市,上海市, | [娱乐,电视, 娱乐,综艺, 娱乐,电影, 小品,默认, 体育,默认, 体育,CBA, 体育... | [娱乐_电视剧, 娱乐_综艺, 娱乐_喜剧, 娱乐_电影, 艺术_小品, 体育_nba, 娱... | 352936090428771 | 3903ffb5b891504c | CQkzOTAzZmZiNWI4OTE1MDRjCTM2NTkzMjU1MzU0YjMwOT... | 男,25-34岁,消费水平_高,未婚,求职中,求职中_低,白领,大陆,一线城市,异性恋,有车... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 未婚 , 求职 中 , 求职 中 _ ... | [消费水平_高, 商务旅行-高, 爱车-高, 新闻·资讯-高, 电视直播-高] | [电视直播, 在线视频, 聊天, 外卖, 办公] | [生活, 办公, 金融, 时尚, 新闻] |
12 | [社会, 娱乐, 健身, 历史, 军事, 汽车, 情感, 健康, 体育, 财经, 手机, 旅... | [健身_健身, 军事_武器装备, 健身_增肌, 军事_枪械, 娱乐_明星八卦, 社会_违法犯... | 0 | 38 | CQk3ZmE1ZmY4Njg5ZTgyYWFjCTFhNGRkZGFjNzEwYjdlY2... | 陕西省,宝鸡市, | [娱乐,电视, 军事,装备, 娱乐,电影, 科技,科技趣闻, 奇闻趣事,默认, 社会,违法犯... | [娱乐_电视剧, 军事_武器装备, 军事_枪械, 娱乐_电影, 军事_冷兵器, 科技_科学实... | 352936095439450 | 7fa5ff8689e82aac | CQk3ZmE1ZmY4Njg5ZTgyYWFjCTFhNGRkZGFjNzEwYjdlY2... | 男,35-44岁,消费水平_高,未婚,白领,大陆,二线城市,异性恋,有车,金融理财,股票交易... | 男 , 35 - 44 岁 , 消费水平 _ 高 , 未婚 , 白领 , 大陆 , 二线 城... | [消费水平_高, 新闻·资讯-高, 听书-高, 在线视频-高, 在线音乐-高] | [新闻, 在线视频, 休闲, 聊天, 办公] | [新闻, 理财, 打车, 休闲, 办公] |
13 | [社会, 娱乐, 搞笑, 手机, 财经, 互联网, 要闻, 教育, 时尚, 体育, 房产, ... | [搞笑_搞笑, 搞笑_搞笑gif, 娱乐_明星八卦, 社会_负面新闻, 社会_违法犯罪, 时... | 1 | 37 | CQk0YzcyODAwYjkxOGQyZDQ5CVNTMkxITUI3NzE0MDEyOT... | 山东省,青岛市, | [动物,默认, 社会,事故, 社会,违法犯罪, 搞笑,默认, 美女,默认, 社会,默认, 科... | [动物_野生动物, 社会_事故, 社会_交通事故, 社会_违法犯罪, 社会_负面新闻, 动物... | 353014080394731 | 4c72800b918d2d49 | CQk0YzcyODAwYjkxOGQyZDQ5CVNTMkxITUI3NzE0MDEyOT... | 男,25-34岁,消费水平_高,未婚,求职中,求职中_低,白领,大陆,二线城市,异性恋,金融... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 未婚 , 求职 中 , 求职 中 _ ... | [消费水平_高, 新闻·资讯-高, 天气查询-高] | [在线视频, 聊天, 外卖, 办公, 网购] | [音乐, 图片, 休闲, 新闻, 办公] |
14 | [娱乐, 社会, 手机, 美食, 人文, 财经, 历史, 时尚, 汽车, 旅游, 体育, 数... | [娱乐_明星八卦, 娱乐_电影, 娱乐_综艺, 娱乐_电视剧, 娱乐_当红小生, 娱乐_郭德... | 0 | 27 | CQliZjg0ZDgzMWIyMTZjNjM4CTk4ODk1YTMxNGQzNTM1ND... | 天津市,天津市, | [娱乐,综艺, 娱乐,电视, 娱乐,明星八卦, 娱乐,电影, 社会,违法犯罪, 科技,科技趣... | [娱乐_综艺, 娱乐_明星八卦, 娱乐_喜剧, 娱乐_电影, 社会_违法犯罪, 财经_王思聪... | 354765080647787 | bf84d831b216c638 | CQliZjg0ZDgzMWIyMTZjNjM4CTk4ODk1YTMxNGQzNTM1ND... | 男,25-34岁,消费水平_高,已婚,白领,大陆,二线城市,异性恋,有车,家庭主购者,金融理... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 已婚 , 白领 , 大陆 , 二线 城... | [消费水平_高, 爱车-高, 新闻·资讯-高, 社区-高, 拍摄美化-高] | [电视直播, 在线视频, 聊天, 办公, 网购] | [天津市, 办公, 拍摄, 新闻, 铃声] |
df_net_gt.isnull().sum()
doc_category 0
doc_interest 4
gender 1528
age 1528
devid 0
location_code 1589
video_category 0
video_interest 2
imei 0
aid 0
device_uuid 0
标签 0
cut_label 0
high_label 0
tf_word 0
tr_word 0
dtype: int64
df_net_gt.columns
Index(['doc_category', 'doc_interest', 'gender', 'age', 'devid',
'location_code', 'video_category', 'video_interest', 'imei', 'aid',
'device_uuid', '标签', 'cut_label', 'high_label', 'tf_word', 'tr_word'],
dtype='object')
需求
业务背景:
-
现在是将外部数据源和已有数据库中的数据进行了merge了!目的是啥呢?那就是扩充数据库已有的标签!
-
那能不能扩充呢?所以首先得做一个简单的评估!如何评估呢?现在已经根据外部数据源分了关键词,根据业务人员的判断,使用text—rank提取的关键词更加合理!
-
经过和业务人员的讨论,现在要做的一个工作就是 判断这5个关键词是否在两大类(doc_category以及video_category)的标签里,那如何判断呢?把这个五个词汇分开,然后分别判断是否在对应的类别里!在就是1 不在就是0 最后再五个词汇进行一个求和汇总!为什么要分开呢?因为最后leader提出还希望要统计共有多少个词汇出现了,以及分别匹配了多少!(默默说一句:需求是真的多…)
-
所以根据上述工作我们就可以按照下面的思路来进行:
-
首先形成五列,是根据text-rank提取的关键词,一个词放在一列,怎么放?得写一个函数!对list一个遍历再分配!
-
写一个函数判断每列的词汇是否在大类中,是返回1 不是返回0 然后再map或者apply一下 不然太慢啦!
-
使用求和函数 对五列的计数结果进行一个求和!
-
对五列的词汇以及对应计数的列进行一个统计,即每个关键词出现的次数以及匹配的次数!形成一个数据框!这个怎么实现呢?还是有点复杂的!具体见后面!
新形成5列!根据上面的tr_word进行切分成五列
- tr_word_1 count_doc_1 count_vid_1
- tr_word_2 count_doc_2 count_vid_2
- tr_word_3 count_doc_3 count_vid_3
- tr_word_4 count_doc_4 count_vid_4
- tr_word_5 count_doc_5 count_vid_5
重命名索引
df_net_gt.index = range(len(df_net_gt))
df_net_gt.head()
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | imei | aid | device_uuid | 标签 | cut_label | high_label | tf_word | tr_word | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | [娱乐, 社会, 育儿, 美食, 时尚, 健康, 历史, 体育, 动物, 艺术, 情感, 家... | [娱乐_纪实综艺, 人文_变形计, 娱乐_综艺, 娱乐_真人秀, 娱乐_明星八卦, 娱乐_纪... | 0 | 24 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 山西省,太原市, | [娱乐,综艺, 娱乐,电视, 萌宝,默认, 美食,吃播, 娱乐,明星八卦, 动物,萌系动物,... | [娱乐_综艺, 娱乐_真人秀, 娱乐_电视剧, 娱乐_妈妈是超人, 体育_傅园慧, 娱乐_冉... | 352571071345916 | 508ba9c367ab4259 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 女,25-34岁,父母,0-3岁小孩父母,妈妈,母婴,0-6岁小孩父母,0-14岁小孩父母,... | 女 , 25 - 34 岁 , 父母 , 0 - 3 岁 小孩 父母 , 妈妈 , 母婴 ,... | [消费水平_高, 信用卡-高, 网购-高, 新闻·资讯-高] | [数码科技, 电视直播, 在线视频, 父母, 聊天] | [数码科技, 父母, 汽车, 理财, 拍摄] |
1 | [体育, 娱乐, 社会, 房产, 要闻, 人文, 健康, 历史, 手机, 数码, 教育, 美... | [体育_nba, 体育_cba, 体育_休斯顿火箭, 娱乐_综艺, 体育_林书豪, 娱乐_电... | 0 | 30 | CQkzOTAzZmZiNWI4OTE1MDRjCTM2NTkzMjU1MzU0YjMwOT... | 上海市,上海市, | [娱乐,电视, 娱乐,综艺, 娱乐,电影, 小品,默认, 体育,默认, 体育,CBA, 体育... | [娱乐_电视剧, 娱乐_综艺, 娱乐_喜剧, 娱乐_电影, 艺术_小品, 体育_nba, 娱... | 352936090428771 | 3903ffb5b891504c | CQkzOTAzZmZiNWI4OTE1MDRjCTM2NTkzMjU1MzU0YjMwOT... | 男,25-34岁,消费水平_高,未婚,求职中,求职中_低,白领,大陆,一线城市,异性恋,有车... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 未婚 , 求职 中 , 求职 中 _ ... | [消费水平_高, 商务旅行-高, 爱车-高, 新闻·资讯-高, 电视直播-高] | [电视直播, 在线视频, 聊天, 外卖, 办公] | [生活, 办公, 金融, 时尚, 新闻] |
2 | [社会, 娱乐, 健身, 历史, 军事, 汽车, 情感, 健康, 体育, 财经, 手机, 旅... | [健身_健身, 军事_武器装备, 健身_增肌, 军事_枪械, 娱乐_明星八卦, 社会_违法犯... | 0 | 38 | CQk3ZmE1ZmY4Njg5ZTgyYWFjCTFhNGRkZGFjNzEwYjdlY2... | 陕西省,宝鸡市, | [娱乐,电视, 军事,装备, 娱乐,电影, 科技,科技趣闻, 奇闻趣事,默认, 社会,违法犯... | [娱乐_电视剧, 军事_武器装备, 军事_枪械, 娱乐_电影, 军事_冷兵器, 科技_科学实... | 352936095439450 | 7fa5ff8689e82aac | CQk3ZmE1ZmY4Njg5ZTgyYWFjCTFhNGRkZGFjNzEwYjdlY2... | 男,35-44岁,消费水平_高,未婚,白领,大陆,二线城市,异性恋,有车,金融理财,股票交易... | 男 , 35 - 44 岁 , 消费水平 _ 高 , 未婚 , 白领 , 大陆 , 二线 城... | [消费水平_高, 新闻·资讯-高, 听书-高, 在线视频-高, 在线音乐-高] | [新闻, 在线视频, 休闲, 聊天, 办公] | [新闻, 理财, 打车, 休闲, 办公] |
3 | [社会, 娱乐, 搞笑, 手机, 财经, 互联网, 要闻, 教育, 时尚, 体育, 房产, ... | [搞笑_搞笑, 搞笑_搞笑gif, 娱乐_明星八卦, 社会_负面新闻, 社会_违法犯罪, 时... | 1 | 37 | CQk0YzcyODAwYjkxOGQyZDQ5CVNTMkxITUI3NzE0MDEyOT... | 山东省,青岛市, | [动物,默认, 社会,事故, 社会,违法犯罪, 搞笑,默认, 美女,默认, 社会,默认, 科... | [动物_野生动物, 社会_事故, 社会_交通事故, 社会_违法犯罪, 社会_负面新闻, 动物... | 353014080394731 | 4c72800b918d2d49 | CQk0YzcyODAwYjkxOGQyZDQ5CVNTMkxITUI3NzE0MDEyOT... | 男,25-34岁,消费水平_高,未婚,求职中,求职中_低,白领,大陆,二线城市,异性恋,金融... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 未婚 , 求职 中 , 求职 中 _ ... | [消费水平_高, 新闻·资讯-高, 天气查询-高] | [在线视频, 聊天, 外卖, 办公, 网购] | [音乐, 图片, 休闲, 新闻, 办公] |
4 | [娱乐, 社会, 手机, 美食, 人文, 财经, 历史, 时尚, 汽车, 旅游, 体育, 数... | [娱乐_明星八卦, 娱乐_电影, 娱乐_综艺, 娱乐_电视剧, 娱乐_当红小生, 娱乐_郭德... | 0 | 27 | CQliZjg0ZDgzMWIyMTZjNjM4CTk4ODk1YTMxNGQzNTM1ND... | 天津市,天津市, | [娱乐,综艺, 娱乐,电视, 娱乐,明星八卦, 娱乐,电影, 社会,违法犯罪, 科技,科技趣... | [娱乐_综艺, 娱乐_明星八卦, 娱乐_喜剧, 娱乐_电影, 社会_违法犯罪, 财经_王思聪... | 354765080647787 | bf84d831b216c638 | CQliZjg0ZDgzMWIyMTZjNjM4CTk4ODk1YTMxNGQzNTM1ND... | 男,25-34岁,消费水平_高,已婚,白领,大陆,二线城市,异性恋,有车,家庭主购者,金融理... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 已婚 , 白领 , 大陆 , 二线 城... | [消费水平_高, 爱车-高, 新闻·资讯-高, 社区-高, 拍摄美化-高] | [电视直播, 在线视频, 聊天, 办公, 网购] | [天津市, 办公, 拍摄, 新闻, 铃声] |
先进行切分word
df_net_gt['tr_word'].head()
7 [数码科技, 父母, 汽车, 理财, 拍摄]
11 [生活, 办公, 金融, 时尚, 新闻]
12 [新闻, 理财, 打车, 休闲, 办公]
13 [音乐, 图片, 休闲, 新闻, 办公]
14 [天津市, 办公, 拍摄, 新闻, 铃声]
Name: tr_word, dtype: object
df_net_gt['tr_word'][0][0]
'数码科技'
df_net_gt.head()
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | imei | aid | device_uuid | 标签 | cut_label | high_label | tf_word | tr_word | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | [娱乐, 社会, 育儿, 美食, 时尚, 健康, 历史, 体育, 动物, 艺术, 情感, 家... | [娱乐_纪实综艺, 人文_变形计, 娱乐_综艺, 娱乐_真人秀, 娱乐_明星八卦, 娱乐_纪... | 0 | 24 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 山西省,太原市, | [娱乐/综艺, 娱乐/电视, 萌宝/默认, 美食/吃播, 娱乐/明星八卦, 动物/萌系动物,... | [娱乐_综艺, 娱乐_真人秀, 娱乐_电视剧, 娱乐_妈妈是超人, 体育_傅园慧, 娱乐_冉... | 352571071345916 | 508ba9c367ab4259 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 女,25-34岁,父母,0-3岁小孩父母,妈妈,母婴,0-6岁小孩父母,0-14岁小孩父母,... | 女 , 25 - 34 岁 , 父母 , 0 - 3 岁 小孩 父母 , 妈妈 , 母婴 ,... | [消费水平_高, 信用卡-高, 网购-高, 新闻·资讯-高] | [数码科技, 电视直播, 在线视频, 父母, 聊天] | [数码科技, 父母, 汽车, 理财, 拍摄] |
1 | [体育, 娱乐, 社会, 房产, 要闻, 人文, 健康, 历史, 手机, 数码, 教育, 美... | [体育_nba, 体育_cba, 体育_休斯顿火箭, 娱乐_综艺, 体育_林书豪, 娱乐_电... | 0 | 30 | CQkzOTAzZmZiNWI4OTE1MDRjCTM2NTkzMjU1MzU0YjMwOT... | 上海市,上海市, | [娱乐/电视, 娱乐/综艺, 娱乐/电影, 小品/默认, 体育/默认, 体育/CBA, 体育... | [娱乐_电视剧, 娱乐_综艺, 娱乐_喜剧, 娱乐_电影, 艺术_小品, 体育_nba, 娱... | 352936090428771 | 3903ffb5b891504c | CQkzOTAzZmZiNWI4OTE1MDRjCTM2NTkzMjU1MzU0YjMwOT... | 男,25-34岁,消费水平_高,未婚,求职中,求职中_低,白领,大陆,一线城市,异性恋,有车... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 未婚 , 求职 中 , 求职 中 _ ... | [消费水平_高, 商务旅行-高, 爱车-高, 新闻·资讯-高, 电视直播-高] | [电视直播, 在线视频, 聊天, 外卖, 办公] | [生活, 办公, 金融, 时尚, 新闻] |
2 | [社会, 娱乐, 健身, 历史, 军事, 汽车, 情感, 健康, 体育, 财经, 手机, 旅... | [健身_健身, 军事_武器装备, 健身_增肌, 军事_枪械, 娱乐_明星八卦, 社会_违法犯... | 0 | 38 | CQk3ZmE1ZmY4Njg5ZTgyYWFjCTFhNGRkZGFjNzEwYjdlY2... | 陕西省,宝鸡市, | [娱乐/电视, 军事/装备, 娱乐/电影, 科技/科技趣闻, 奇闻趣事/默认, 社会/违法犯... | [娱乐_电视剧, 军事_武器装备, 军事_枪械, 娱乐_电影, 军事_冷兵器, 科技_科学实... | 352936095439450 | 7fa5ff8689e82aac | CQk3ZmE1ZmY4Njg5ZTgyYWFjCTFhNGRkZGFjNzEwYjdlY2... | 男,35-44岁,消费水平_高,未婚,白领,大陆,二线城市,异性恋,有车,金融理财,股票交易... | 男 , 35 - 44 岁 , 消费水平 _ 高 , 未婚 , 白领 , 大陆 , 二线 城... | [消费水平_高, 新闻·资讯-高, 听书-高, 在线视频-高, 在线音乐-高] | [新闻, 在线视频, 休闲, 聊天, 办公] | [新闻, 理财, 打车, 休闲, 办公] |
3 | [社会, 娱乐, 搞笑, 手机, 财经, 互联网, 要闻, 教育, 时尚, 体育, 房产, ... | [搞笑_搞笑, 搞笑_搞笑gif, 娱乐_明星八卦, 社会_负面新闻, 社会_违法犯罪, 时... | 1 | 37 | CQk0YzcyODAwYjkxOGQyZDQ5CVNTMkxITUI3NzE0MDEyOT... | 山东省,青岛市, | [动物/默认, 社会/事故, 社会/违法犯罪, 搞笑/默认, 美女/默认, 社会/默认, 科... | [动物_野生动物, 社会_事故, 社会_交通事故, 社会_违法犯罪, 社会_负面新闻, 动物... | 353014080394731 | 4c72800b918d2d49 | CQk0YzcyODAwYjkxOGQyZDQ5CVNTMkxITUI3NzE0MDEyOT... | 男,25-34岁,消费水平_高,未婚,求职中,求职中_低,白领,大陆,二线城市,异性恋,金融... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 未婚 , 求职 中 , 求职 中 _ ... | [消费水平_高, 新闻·资讯-高, 天气查询-高] | [在线视频, 聊天, 外卖, 办公, 网购] | [音乐, 图片, 休闲, 新闻, 办公] |
4 | [娱乐, 社会, 手机, 美食, 人文, 财经, 历史, 时尚, 汽车, 旅游, 体育, 数... | [娱乐_明星八卦, 娱乐_电影, 娱乐_综艺, 娱乐_电视剧, 娱乐_当红小生, 娱乐_郭德... | 0 | 27 | CQliZjg0ZDgzMWIyMTZjNjM4CTk4ODk1YTMxNGQzNTM1ND... | 天津市,天津市, | [娱乐/综艺, 娱乐/电视, 娱乐/明星八卦, 娱乐/电影, 社会/违法犯罪, 科技/科技趣... | [娱乐_综艺, 娱乐_明星八卦, 娱乐_喜剧, 娱乐_电影, 社会_违法犯罪, 财经_王思聪... | 354765080647787 | bf84d831b216c638 | CQliZjg0ZDgzMWIyMTZjNjM4CTk4ODk1YTMxNGQzNTM1ND... | 男,25-34岁,消费水平_高,已婚,白领,大陆,二线城市,异性恋,有车,家庭主购者,金融理... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 已婚 , 白领 , 大陆 , 二线 城... | [消费水平_高, 爱车-高, 新闻·资讯-高, 社区-高, 拍摄美化-高] | [电视直播, 在线视频, 聊天, 办公, 网购] | [天津市, 办公, 拍摄, 新闻, 铃声] |
技巧:
- 根据毕博(研究生同一师门的好基友)超强idea,就是把index传到map函数中去,因为都是在同一行进行处理!这个操作是真的秀!同时map里面的函数可以不止一个参数,怎么实现?!增加一个lambda函数!这个操作就更秀了!因为有更多的参数代码的维护性就更好了!所以这个操作完美!
- 为什么要index传参并且使用map函数呢?因为普通的for循环实在太慢了!跑了20分钟都跑完好吗?!
# 先生成五列 每列结果为0
word_label = ['tr_word_1', 'tr_word_2', 'tr_word_3', 'tr_word_4', 'tr_word_5']
for label in word_label:
df_net_gt[label] = 0
def ExtraList(x, i):
# 定义抽取函数 从list中分配到五列!
return df_net_gt['tr_word'][x][i]
i = 0 # 抽取的list的第几个位置的
# 定义个函数 从list中抽取每个元素放到每一列中去
for label in word_label:
df_net_gt[label] = df_net_gt.index.map(lambda x: ExtraList(x, i))
i += 1
df_net_gt.head()
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | imei | aid | ... | 标签 | cut_label | high_label | tf_word | tr_word | tr_word_1 | tr_word_2 | tr_word_3 | tr_word_4 | tr_word_5 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | [娱乐, 社会, 育儿, 美食, 时尚, 健康, 历史, 体育, 动物, 艺术, 情感, 家... | [娱乐_纪实综艺, 人文_变形计, 娱乐_综艺, 娱乐_真人秀, 娱乐_明星八卦, 娱乐_纪... | 0 | 24 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 山西省,太原市, | [娱乐/综艺, 娱乐/电视, 萌宝/默认, 美食/吃播, 娱乐/明星八卦, 动物/萌系动物,... | [娱乐_综艺, 娱乐_真人秀, 娱乐_电视剧, 娱乐_妈妈是超人, 体育_傅园慧, 娱乐_冉... | 352571071345916 | 508ba9c367ab4259 | ... | 女,25-34岁,父母,0-3岁小孩父母,妈妈,母婴,0-6岁小孩父母,0-14岁小孩父母,... | 女 , 25 - 34 岁 , 父母 , 0 - 3 岁 小孩 父母 , 妈妈 , 母婴 ,... | [消费水平_高, 信用卡-高, 网购-高, 新闻·资讯-高] | [数码科技, 电视直播, 在线视频, 父母, 聊天] | [数码科技, 父母, 汽车, 理财, 拍摄] | 数码科技 | 父母 | 汽车 | 理财 | 拍摄 |
1 | [体育, 娱乐, 社会, 房产, 要闻, 人文, 健康, 历史, 手机, 数码, 教育, 美... | [体育_nba, 体育_cba, 体育_休斯顿火箭, 娱乐_综艺, 体育_林书豪, 娱乐_电... | 0 | 30 | CQkzOTAzZmZiNWI4OTE1MDRjCTM2NTkzMjU1MzU0YjMwOT... | 上海市,上海市, | [娱乐/电视, 娱乐/综艺, 娱乐/电影, 小品/默认, 体育/默认, 体育/CBA, 体育... | [娱乐_电视剧, 娱乐_综艺, 娱乐_喜剧, 娱乐_电影, 艺术_小品, 体育_nba, 娱... | 352936090428771 | 3903ffb5b891504c | ... | 男,25-34岁,消费水平_高,未婚,求职中,求职中_低,白领,大陆,一线城市,异性恋,有车... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 未婚 , 求职 中 , 求职 中 _ ... | [消费水平_高, 商务旅行-高, 爱车-高, 新闻·资讯-高, 电视直播-高] | [电视直播, 在线视频, 聊天, 外卖, 办公] | [生活, 办公, 金融, 时尚, 新闻] | 生活 | 办公 | 金融 | 时尚 | 新闻 |
2 | [社会, 娱乐, 健身, 历史, 军事, 汽车, 情感, 健康, 体育, 财经, 手机, 旅... | [健身_健身, 军事_武器装备, 健身_增肌, 军事_枪械, 娱乐_明星八卦, 社会_违法犯... | 0 | 38 | CQk3ZmE1ZmY4Njg5ZTgyYWFjCTFhNGRkZGFjNzEwYjdlY2... | 陕西省,宝鸡市, | [娱乐/电视, 军事/装备, 娱乐/电影, 科技/科技趣闻, 奇闻趣事/默认, 社会/违法犯... | [娱乐_电视剧, 军事_武器装备, 军事_枪械, 娱乐_电影, 军事_冷兵器, 科技_科学实... | 352936095439450 | 7fa5ff8689e82aac | ... | 男,35-44岁,消费水平_高,未婚,白领,大陆,二线城市,异性恋,有车,金融理财,股票交易... | 男 , 35 - 44 岁 , 消费水平 _ 高 , 未婚 , 白领 , 大陆 , 二线 城... | [消费水平_高, 新闻·资讯-高, 听书-高, 在线视频-高, 在线音乐-高] | [新闻, 在线视频, 休闲, 聊天, 办公] | [新闻, 理财, 打车, 休闲, 办公] | 新闻 | 理财 | 打车 | 休闲 | 办公 |
3 | [社会, 娱乐, 搞笑, 手机, 财经, 互联网, 要闻, 教育, 时尚, 体育, 房产, ... | [搞笑_搞笑, 搞笑_搞笑gif, 娱乐_明星八卦, 社会_负面新闻, 社会_违法犯罪, 时... | 1 | 37 | CQk0YzcyODAwYjkxOGQyZDQ5CVNTMkxITUI3NzE0MDEyOT... | 山东省,青岛市, | [动物/默认, 社会/事故, 社会/违法犯罪, 搞笑/默认, 美女/默认, 社会/默认, 科... | [动物_野生动物, 社会_事故, 社会_交通事故, 社会_违法犯罪, 社会_负面新闻, 动物... | 353014080394731 | 4c72800b918d2d49 | ... | 男,25-34岁,消费水平_高,未婚,求职中,求职中_低,白领,大陆,二线城市,异性恋,金融... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 未婚 , 求职 中 , 求职 中 _ ... | [消费水平_高, 新闻·资讯-高, 天气查询-高] | [在线视频, 聊天, 外卖, 办公, 网购] | [音乐, 图片, 休闲, 新闻, 办公] | 音乐 | 图片 | 休闲 | 新闻 | 办公 |
4 | [娱乐, 社会, 手机, 美食, 人文, 财经, 历史, 时尚, 汽车, 旅游, 体育, 数... | [娱乐_明星八卦, 娱乐_电影, 娱乐_综艺, 娱乐_电视剧, 娱乐_当红小生, 娱乐_郭德... | 0 | 27 | CQliZjg0ZDgzMWIyMTZjNjM4CTk4ODk1YTMxNGQzNTM1ND... | 天津市,天津市, | [娱乐/综艺, 娱乐/电视, 娱乐/明星八卦, 娱乐/电影, 社会/违法犯罪, 科技/科技趣... | [娱乐_综艺, 娱乐_明星八卦, 娱乐_喜剧, 娱乐_电影, 社会_违法犯罪, 财经_王思聪... | 354765080647787 | bf84d831b216c638 | ... | 男,25-34岁,消费水平_高,已婚,白领,大陆,二线城市,异性恋,有车,家庭主购者,金融理... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 已婚 , 白领 , 大陆 , 二线 城... | [消费水平_高, 爱车-高, 新闻·资讯-高, 社区-高, 拍摄美化-高] | [电视直播, 在线视频, 聊天, 办公, 网购] | [天津市, 办公, 拍摄, 新闻, 铃声] | 天津市 | 办公 | 拍摄 | 新闻 | 铃声 |
5 rows × 21 columns
df_net_gt.shape
(5861, 21)
df_net_gt['device_uuid'].value_counts()
CQlmZmIwY2YxNGZiNmRiZDQxCWJiNGNjNDM3 64
CQk2MGM3ZTE5ZmM0ZmU3OTAwCThiMmJiNDk2 64
c8:f2:30:f6:b2:fb 64
CQkyNzEzMmEzZTQwODFkN2QyCTMyMWE2YTEz 64
c8:f2:30:f4:09:b3 64
CQliZjk3OTAxZTYwYjcyOWFhCTE4ZmJhODlk 64
CQk5YWYyZWZlYmMyZDgzYWRhCTJjMDJkYTA0 64
CQk0N2JiZjg5MjRlYmU0MzM4CWMwOWFkMDRj 64
CQkzNTAxZDlmNTkwYWMxY2Y0CTE1ODlkODc2 64
CQkyMTEzMmFkOWFlOTkwYjU0CTgxYjg2YWFi 64
CQk0YWJmODIyNzMyMWY2OGE5CTkxYzNkYzI3 64
CQk1NzliZjdlNTRjNjc1M2MxCWVhOThlMDRj 64
c8:f2:30:f6:df:46 64
CQk5NDNjZGVjNDg2YmFmMzRiCTZjNjRlMDll 64
CQlhNTkzZjkxMDUwZjQ0ZjY3CTNiOGRkYzdj 64
CQludWxsCTgxYjg2YWFi 64
CQllMThmNTQxZTRkMDFmZWU3CWMzODJkYzVj 64
CQljZjU1Mjk0NGJkZWMzYWQ2CU1aV1dST1o1SU5GVU1aQ00%3D 64
CQk4MWJjYjVjMTUwZGE1NWM0CTk0MDRkOTA%3D 64
CQk5NjFjYzJhMThlNWYyNWNjCWM3NGQ2Mjc%3D 64
CQlkZjZhNzhiNjc5OWYyNmE0CTEyZTdkZWU0 64
CQlmM2MxNjUzY2QzZThkOTdmCWI3MDJkY2Rl 1
CQlmNWY3MWRhMGM1MTk2OTIwCTkxNzBjMjZk 1
CQlkZTM2NmVhOWY1ZDI3ODE1CVVZVDAyMTdBMjMwMDI1MTk%3D 1
CQk3ZWM2NDc2YWU0YmI4ZGVhCWQ1MmFlYjUx 1
CQk4MTQ3YjQyZDA5YTBjYjdmCTMxODRkYTJh 1
CQk4YjM1NGI4N2NmMWJmZGZiCTMwZmJhZmQ%3D 1
CQk1ODg5OGVhZTFlY2UyNGU5CTM5ZTNkYzZk 1
CQllNDYzN2Y2OWJiZGRmZmJjCTlmNjBjNjk4 1
CQk1MGFlYzIwNjJlYjY0YmNjCWNlMDkxNzE5MmMwY2QwNzUwYzdl 1
..
CQk3MzE4NzRiOWE5MGE1NTgwCTYyNTcxMzQ%3D 1
CQk0MGY4YjIyY2ZiNmJmZGZmCTA3MTVmN2ZiZGZhZTJhMDU%3D 1
CQkxZmI3NjkzNDQxMDE4YzViCUdKUTRDMTg0MjQwMzU5Mzc%3D 1
CQk5YWFjMWVlNjM2MDI1ZTU5CWFlNGVjZWU3 1
CQllMjFlZGE1YTkyZGRjNjQ2CUNKTDVUMTZCMDkwMDUzMzA%3D 1
CQkxNWNhNDVlOWNjNzBkOGU5CWQ5OGRhY2E4 1
CQk4NzNmODJhNzJjZDU4NTY1CWZjNDljODU4 1
CQlkNjAxOTVjNzliOWZjYjRhCTNIWDVUMTZDMTMwMDI5OTE%3D 1
CQliZTk4NDgwMzRkZTdjYWJiCUE3SjAyMTU1MDQwMTAyNTk%3D 1
CQk3YzE2MWNmNmI2YTgxZmVkCUVKTERVMTY3MjcwMzEzMjI%3D 1
CQk1NDE3MGJmM2M4Zjc3YTdiCTZkNjM0Yzk2 1
CQk5NjMxZWEzM2IwYjhkZTRiCTNIWDAyMTc2MjYwMDkwMjY%3D 1
CQk4ZDQzMWI1ZjhjMzczOTNjCTA3MTVmN2ZiZTZlMDBjMDQ%3D 1
CQlhMmJmNjYyZTExZmU2NzgyCUZBNzczMTgwMDEyNg%3D%3D 1
CQlmOTBjN2M4MTc1MDdjOTkxCTMzZDRhODMz 1
CQk1ODcxZjliNDVkM2NkZWRiCTg4MThmMjNj 1
A100004C7538F5 1
CQlmNDg2MWE4ODU3ZGIyOTdlCWM1NWFhODEy 1
A10000541D4DD9 1
CQk1NDJiZjUxMjg0NTEyMzNmCTVKUDAyMTc2MjkwMDY2NzY%3D 1
CQkyZmIxODVjYzdlYTM0N2Q1CUVKTDRDMTZDMDIwMDIyOTQ%3D 1
CQkxZDZiMDlmOWM3YzAyOTU4CTEwYWZmMWEy 1
CQk3MzM5NzAwZGU5YjU5ZTBkCU02VEdMTUE3MTEwMDg4NTM%3D 1
CQk5NWI4ZTFkYTQ5NjlkZDczCTJkOWJjNGJj 1
CQkxYzEwYTMzNjk5NDE1MDA1CUNKTDVUMTVDMTEwMjg5NTY%3D 1
A100004E459C67 1
CQkwOWM0NWYxOWViYmRjODIwCTlmMzBkNDI3 1
CQk3NDQxZTRhNzY3OGMyYTQzCUZGSzAyMTc1MTEwMDQ4NDg%3D 1
CQk0ZjJiYjgwN2EyYWE4MDc3CTI2NDBhYzUx 1
A000005F294D50 1
Name: device_uuid, Length: 4538, dtype: int64
去重
df_net_gt = df_net_gt.drop_duplicates(['device_uuid'])
print(df_net_gt.shape)
df_net_gt.head()
(4538, 21)
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | imei | aid | ... | 标签 | cut_label | high_label | tf_word | tr_word | tr_word_1 | tr_word_2 | tr_word_3 | tr_word_4 | tr_word_5 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | [娱乐, 社会, 育儿, 美食, 时尚, 健康, 历史, 体育, 动物, 艺术, 情感, 家... | [娱乐_纪实综艺, 人文_变形计, 娱乐_综艺, 娱乐_真人秀, 娱乐_明星八卦, 娱乐_纪... | 0 | 24 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 山西省,太原市, | [娱乐,综艺, 娱乐,电视, 萌宝,默认, 美食,吃播, 娱乐,明星八卦, 动物,萌系动物,... | [娱乐_综艺, 娱乐_真人秀, 娱乐_电视剧, 娱乐_妈妈是超人, 体育_傅园慧, 娱乐_冉... | 352571071345916 | 508ba9c367ab4259 | ... | 女,25-34岁,父母,0-3岁小孩父母,妈妈,母婴,0-6岁小孩父母,0-14岁小孩父母,... | 女 , 25 - 34 岁 , 父母 , 0 - 3 岁 小孩 父母 , 妈妈 , 母婴 ,... | [消费水平_高, 信用卡-高, 网购-高, 新闻·资讯-高] | [数码科技, 电视直播, 在线视频, 父母, 聊天] | [数码科技, 父母, 汽车, 理财, 拍摄] | 数码科技 | 父母 | 汽车 | 理财 | 拍摄 |
1 | [体育, 娱乐, 社会, 房产, 要闻, 人文, 健康, 历史, 手机, 数码, 教育, 美... | [体育_nba, 体育_cba, 体育_休斯顿火箭, 娱乐_综艺, 体育_林书豪, 娱乐_电... | 0 | 30 | CQkzOTAzZmZiNWI4OTE1MDRjCTM2NTkzMjU1MzU0YjMwOT... | 上海市,上海市, | [娱乐,电视, 娱乐,综艺, 娱乐,电影, 小品,默认, 体育,默认, 体育,CBA, 体育... | [娱乐_电视剧, 娱乐_综艺, 娱乐_喜剧, 娱乐_电影, 艺术_小品, 体育_nba, 娱... | 352936090428771 | 3903ffb5b891504c | ... | 男,25-34岁,消费水平_高,未婚,求职中,求职中_低,白领,大陆,一线城市,异性恋,有车... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 未婚 , 求职 中 , 求职 中 _ ... | [消费水平_高, 商务旅行-高, 爱车-高, 新闻·资讯-高, 电视直播-高] | [电视直播, 在线视频, 聊天, 外卖, 办公] | [生活, 办公, 金融, 时尚, 新闻] | 生活 | 办公 | 金融 | 时尚 | 新闻 |
2 | [社会, 娱乐, 健身, 历史, 军事, 汽车, 情感, 健康, 体育, 财经, 手机, 旅... | [健身_健身, 军事_武器装备, 健身_增肌, 军事_枪械, 娱乐_明星八卦, 社会_违法犯... | 0 | 38 | CQk3ZmE1ZmY4Njg5ZTgyYWFjCTFhNGRkZGFjNzEwYjdlY2... | 陕西省,宝鸡市, | [娱乐,电视, 军事,装备, 娱乐,电影, 科技,科技趣闻, 奇闻趣事,默认, 社会,违法犯... | [娱乐_电视剧, 军事_武器装备, 军事_枪械, 娱乐_电影, 军事_冷兵器, 科技_科学实... | 352936095439450 | 7fa5ff8689e82aac | ... | 男,35-44岁,消费水平_高,未婚,白领,大陆,二线城市,异性恋,有车,金融理财,股票交易... | 男 , 35 - 44 岁 , 消费水平 _ 高 , 未婚 , 白领 , 大陆 , 二线 城... | [消费水平_高, 新闻·资讯-高, 听书-高, 在线视频-高, 在线音乐-高] | [新闻, 在线视频, 休闲, 聊天, 办公] | [新闻, 理财, 打车, 休闲, 办公] | 新闻 | 理财 | 打车 | 休闲 | 办公 |
3 | [社会, 娱乐, 搞笑, 手机, 财经, 互联网, 要闻, 教育, 时尚, 体育, 房产, ... | [搞笑_搞笑, 搞笑_搞笑gif, 娱乐_明星八卦, 社会_负面新闻, 社会_违法犯罪, 时... | 1 | 37 | CQk0YzcyODAwYjkxOGQyZDQ5CVNTMkxITUI3NzE0MDEyOT... | 山东省,青岛市, | [动物,默认, 社会,事故, 社会,违法犯罪, 搞笑,默认, 美女,默认, 社会,默认, 科... | [动物_野生动物, 社会_事故, 社会_交通事故, 社会_违法犯罪, 社会_负面新闻, 动物... | 353014080394731 | 4c72800b918d2d49 | ... | 男,25-34岁,消费水平_高,未婚,求职中,求职中_低,白领,大陆,二线城市,异性恋,金融... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 未婚 , 求职 中 , 求职 中 _ ... | [消费水平_高, 新闻·资讯-高, 天气查询-高] | [在线视频, 聊天, 外卖, 办公, 网购] | [音乐, 图片, 休闲, 新闻, 办公] | 音乐 | 图片 | 休闲 | 新闻 | 办公 |
4 | [娱乐, 社会, 手机, 美食, 人文, 财经, 历史, 时尚, 汽车, 旅游, 体育, 数... | [娱乐_明星八卦, 娱乐_电影, 娱乐_综艺, 娱乐_电视剧, 娱乐_当红小生, 娱乐_郭德... | 0 | 27 | CQliZjg0ZDgzMWIyMTZjNjM4CTk4ODk1YTMxNGQzNTM1ND... | 天津市,天津市, | [娱乐,综艺, 娱乐,电视, 娱乐,明星八卦, 娱乐,电影, 社会,违法犯罪, 科技,科技趣... | [娱乐_综艺, 娱乐_明星八卦, 娱乐_喜剧, 娱乐_电影, 社会_违法犯罪, 财经_王思聪... | 354765080647787 | bf84d831b216c638 | ... | 男,25-34岁,消费水平_高,已婚,白领,大陆,二线城市,异性恋,有车,家庭主购者,金融理... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 已婚 , 白领 , 大陆 , 二线 城... | [消费水平_高, 爱车-高, 新闻·资讯-高, 社区-高, 拍摄美化-高] | [电视直播, 在线视频, 聊天, 办公, 网购] | [天津市, 办公, 拍摄, 新闻, 铃声] | 天津市 | 办公 | 拍摄 | 新闻 | 铃声 |
5 rows × 21 columns
进行计数
先考虑 doc_category 生成五列 count_doc_
技巧:
- 关键节点使用copy中的深拷贝,具体几种拷贝方式见之前的文章!
- 上述做法的好处是如果某一个测试做错了,不用把之前数据的操作再重新进行一遍,提高了效率!减小了犯错成本!
import copy
df_net_gt_1 = copy.deepcopy(df_net_gt)
df_net_gt_1.head()
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | imei | aid | ... | 标签 | cut_label | high_label | tf_word | tr_word | tr_word_1 | tr_word_2 | tr_word_3 | tr_word_4 | tr_word_5 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | [娱乐, 社会, 育儿, 美食, 时尚, 健康, 历史, 体育, 动物, 艺术, 情感, 家... | [娱乐_纪实综艺, 人文_变形计, 娱乐_综艺, 娱乐_真人秀, 娱乐_明星八卦, 娱乐_纪... | 0 | 24 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 山西省,太原市, | [娱乐,综艺, 娱乐,电视, 萌宝,默认, 美食,吃播, 娱乐,明星八卦, 动物,萌系动物,... | [娱乐_综艺, 娱乐_真人秀, 娱乐_电视剧, 娱乐_妈妈是超人, 体育_傅园慧, 娱乐_冉... | 352571071345916 | 508ba9c367ab4259 | ... | 女,25-34岁,父母,0-3岁小孩父母,妈妈,母婴,0-6岁小孩父母,0-14岁小孩父母,... | 女 , 25 - 34 岁 , 父母 , 0 - 3 岁 小孩 父母 , 妈妈 , 母婴 ,... | [消费水平_高, 信用卡-高, 网购-高, 新闻·资讯-高] | [数码科技, 电视直播, 在线视频, 父母, 聊天] | [数码科技, 父母, 汽车, 理财, 拍摄] | 数码科技 | 父母 | 汽车 | 理财 | 拍摄 |
1 | [体育, 娱乐, 社会, 房产, 要闻, 人文, 健康, 历史, 手机, 数码, 教育, 美... | [体育_nba, 体育_cba, 体育_休斯顿火箭, 娱乐_综艺, 体育_林书豪, 娱乐_电... | 0 | 30 | CQkzOTAzZmZiNWI4OTE1MDRjCTM2NTkzMjU1MzU0YjMwOT... | 上海市,上海市, | [娱乐,电视, 娱乐,综艺, 娱乐,电影, 小品,默认, 体育,默认, 体育,CBA, 体育... | [娱乐_电视剧, 娱乐_综艺, 娱乐_喜剧, 娱乐_电影, 艺术_小品, 体育_nba, 娱... | 352936090428771 | 3903ffb5b891504c | ... | 男,25-34岁,消费水平_高,未婚,求职中,求职中_低,白领,大陆,一线城市,异性恋,有车... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 未婚 , 求职 中 , 求职 中 _ ... | [消费水平_高, 商务旅行-高, 爱车-高, 新闻·资讯-高, 电视直播-高] | [电视直播, 在线视频, 聊天, 外卖, 办公] | [生活, 办公, 金融, 时尚, 新闻] | 生活 | 办公 | 金融 | 时尚 | 新闻 |
2 | [社会, 娱乐, 健身, 历史, 军事, 汽车, 情感, 健康, 体育, 财经, 手机, 旅... | [健身_健身, 军事_武器装备, 健身_增肌, 军事_枪械, 娱乐_明星八卦, 社会_违法犯... | 0 | 38 | CQk3ZmE1ZmY4Njg5ZTgyYWFjCTFhNGRkZGFjNzEwYjdlY2... | 陕西省,宝鸡市, | [娱乐,电视, 军事,装备, 娱乐,电影, 科技,科技趣闻, 奇闻趣事,默认, 社会,违法犯... | [娱乐_电视剧, 军事_武器装备, 军事_枪械, 娱乐_电影, 军事_冷兵器, 科技_科学实... | 352936095439450 | 7fa5ff8689e82aac | ... | 男,35-44岁,消费水平_高,未婚,白领,大陆,二线城市,异性恋,有车,金融理财,股票交易... | 男 , 35 - 44 岁 , 消费水平 _ 高 , 未婚 , 白领 , 大陆 , 二线 城... | [消费水平_高, 新闻·资讯-高, 听书-高, 在线视频-高, 在线音乐-高] | [新闻, 在线视频, 休闲, 聊天, 办公] | [新闻, 理财, 打车, 休闲, 办公] | 新闻 | 理财 | 打车 | 休闲 | 办公 |
3 | [社会, 娱乐, 搞笑, 手机, 财经, 互联网, 要闻, 教育, 时尚, 体育, 房产, ... | [搞笑_搞笑, 搞笑_搞笑gif, 娱乐_明星八卦, 社会_负面新闻, 社会_违法犯罪, 时... | 1 | 37 | CQk0YzcyODAwYjkxOGQyZDQ5CVNTMkxITUI3NzE0MDEyOT... | 山东省,青岛市, | [动物,默认, 社会,事故, 社会,违法犯罪, 搞笑,默认, 美女,默认, 社会,默认, 科... | [动物_野生动物, 社会_事故, 社会_交通事故, 社会_违法犯罪, 社会_负面新闻, 动物... | 353014080394731 | 4c72800b918d2d49 | ... | 男,25-34岁,消费水平_高,未婚,求职中,求职中_低,白领,大陆,二线城市,异性恋,金融... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 未婚 , 求职 中 , 求职 中 _ ... | [消费水平_高, 新闻·资讯-高, 天气查询-高] | [在线视频, 聊天, 外卖, 办公, 网购] | [音乐, 图片, 休闲, 新闻, 办公] | 音乐 | 图片 | 休闲 | 新闻 | 办公 |
4 | [娱乐, 社会, 手机, 美食, 人文, 财经, 历史, 时尚, 汽车, 旅游, 体育, 数... | [娱乐_明星八卦, 娱乐_电影, 娱乐_综艺, 娱乐_电视剧, 娱乐_当红小生, 娱乐_郭德... | 0 | 27 | CQliZjg0ZDgzMWIyMTZjNjM4CTk4ODk1YTMxNGQzNTM1ND... | 天津市,天津市, | [娱乐,综艺, 娱乐,电视, 娱乐,明星八卦, 娱乐,电影, 社会,违法犯罪, 科技,科技趣... | [娱乐_综艺, 娱乐_明星八卦, 娱乐_喜剧, 娱乐_电影, 社会_违法犯罪, 财经_王思聪... | 354765080647787 | bf84d831b216c638 | ... | 男,25-34岁,消费水平_高,已婚,白领,大陆,二线城市,异性恋,有车,家庭主购者,金融理... | 男 , 25 - 34 岁 , 消费水平 _ 高 , 已婚 , 白领 , 大陆 , 二线 城... | [消费水平_高, 爱车-高, 新闻·资讯-高, 社区-高, 拍摄美化-高] | [电视直播, 在线视频, 聊天, 办公, 网购] | [天津市, 办公, 拍摄, 新闻, 铃声] | 天津市 | 办公 | 拍摄 | 新闻 | 铃声 |
5 rows × 21 columns
word_label = ['tr_word_1', 'tr_word_2', 'tr_word_3', 'tr_word_4', 'tr_word_5']
count_label = ['tr_count_1', 'tr_count_2', 'tr_count_3', 'tr_count_4', 'tr_count_5']
# 生成五列计数的 首先赋值为0
for label in count_label:
df_net_gt_1[label] = 0
print(df_net_gt_1.shape)
df_net_gt_1.head()
(5861, 26)
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | imei | aid | ... | tr_word_1 | tr_word_2 | tr_word_3 | tr_word_4 | tr_word_5 | tr_count_1 | tr_count_2 | tr_count_3 | tr_count_4 | tr_count_5 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | [娱乐, 社会, 育儿, 美食, 时尚, 健康, 历史, 体育, 动物, 艺术, 情感, 家... | [娱乐_纪实综艺, 人文_变形计, 娱乐_综艺, 娱乐_真人秀, 娱乐_明星八卦, 娱乐_纪... | 0 | 24 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 山西省,太原市, | [娱乐,综艺, 娱乐,电视, 萌宝,默认, 美食,吃播, 娱乐,明星八卦, 动物,萌系动物,... | [娱乐_综艺, 娱乐_真人秀, 娱乐_电视剧, 娱乐_妈妈是超人, 体育_傅园慧, 娱乐_冉... | 352571071345916 | 508ba9c367ab4259 | ... | 数码科技 | 父母 | 汽车 | 理财 | 拍摄 | 0 | 0 | 0 | 0 | 0 |
1 | [体育, 娱乐, 社会, 房产, 要闻, 人文, 健康, 历史, 手机, 数码, 教育, 美... | [体育_nba, 体育_cba, 体育_休斯顿火箭, 娱乐_综艺, 体育_林书豪, 娱乐_电... | 0 | 30 | CQkzOTAzZmZiNWI4OTE1MDRjCTM2NTkzMjU1MzU0YjMwOT... | 上海市,上海市, | [娱乐,电视, 娱乐,综艺, 娱乐,电影, 小品,默认, 体育,默认, 体育,CBA, 体育... | [娱乐_电视剧, 娱乐_综艺, 娱乐_喜剧, 娱乐_电影, 艺术_小品, 体育_nba, 娱... | 352936090428771 | 3903ffb5b891504c | ... | 生活 | 办公 | 金融 | 时尚 | 新闻 | 0 | 0 | 0 | 0 | 0 |
2 | [社会, 娱乐, 健身, 历史, 军事, 汽车, 情感, 健康, 体育, 财经, 手机, 旅... | [健身_健身, 军事_武器装备, 健身_增肌, 军事_枪械, 娱乐_明星八卦, 社会_违法犯... | 0 | 38 | CQk3ZmE1ZmY4Njg5ZTgyYWFjCTFhNGRkZGFjNzEwYjdlY2... | 陕西省,宝鸡市, | [娱乐,电视, 军事,装备, 娱乐,电影, 科技,科技趣闻, 奇闻趣事,默认, 社会,违法犯... | [娱乐_电视剧, 军事_武器装备, 军事_枪械, 娱乐_电影, 军事_冷兵器, 科技_科学实... | 352936095439450 | 7fa5ff8689e82aac | ... | 新闻 | 理财 | 打车 | 休闲 | 办公 | 0 | 0 | 0 | 0 | 0 |
3 | [社会, 娱乐, 搞笑, 手机, 财经, 互联网, 要闻, 教育, 时尚, 体育, 房产, ... | [搞笑_搞笑, 搞笑_搞笑gif, 娱乐_明星八卦, 社会_负面新闻, 社会_违法犯罪, 时... | 1 | 37 | CQk0YzcyODAwYjkxOGQyZDQ5CVNTMkxITUI3NzE0MDEyOT... | 山东省,青岛市, | [动物,默认, 社会,事故, 社会,违法犯罪, 搞笑,默认, 美女,默认, 社会,默认, 科... | [动物_野生动物, 社会_事故, 社会_交通事故, 社会_违法犯罪, 社会_负面新闻, 动物... | 353014080394731 | 4c72800b918d2d49 | ... | 音乐 | 图片 | 休闲 | 新闻 | 办公 | 0 | 0 | 0 | 0 | 0 |
4 | [娱乐, 社会, 手机, 美食, 人文, 财经, 历史, 时尚, 汽车, 旅游, 体育, 数... | [娱乐_明星八卦, 娱乐_电影, 娱乐_综艺, 娱乐_电视剧, 娱乐_当红小生, 娱乐_郭德... | 0 | 27 | CQliZjg0ZDgzMWIyMTZjNjM4CTk4ODk1YTMxNGQzNTM1ND... | 天津市,天津市, | [娱乐,综艺, 娱乐,电视, 娱乐,明星八卦, 娱乐,电影, 社会,违法犯罪, 科技,科技趣... | [娱乐_综艺, 娱乐_明星八卦, 娱乐_喜剧, 娱乐_电影, 社会_违法犯罪, 财经_王思聪... | 354765080647787 | bf84d831b216c638 | ... | 天津市 | 办公 | 拍摄 | 新闻 | 铃声 | 0 | 0 | 0 | 0 | 0 |
5 rows × 26 columns
统一为一个函数
函数作用:
- 判断某一列的词汇是否在某一列里,一行一行的对应,如果在,返回1到新列,否则返回0到新列。
其余的技巧:
- 上面也提到过,得使用map函数+lambda函数 不能for循环,不然效率贼低!而且代码稳定性比较好!
def CalStr(s, word_label, count_label, category):
if df_net_gt_1[word_label][s] in df_net_gt_1[category][s]:
return 1
else:
return 0
for i in range(len(word_label)):
df_net_gt_1[count_label[i]] = df_net_gt_1.index.map(lambda x: CalStr(x, word_label[i], count_label[i], 'doc_category'))
df_net_gt_1['tr_count_1'].head()
0 0
1 1
2 0
3 0
4 0
Name: tr_count_1, dtype: int64
对video进行考虑
其实只要稍微改动下上述的代码即可!函数可以复用的!
word_label = ['tr_word_1', 'tr_word_2', 'tr_word_3', 'tr_word_4', 'tr_word_5']
count_label_v = ['tr_count_1_v', 'tr_count_2_v', 'tr_count_3_v', 'tr_count_4_v', 'tr_count_5_v']
for label in count_label_v:
df_net_gt_1[label] = 0
遇到的问题:
- 直接像doc对应的方法去做的时候,发现每个count全都是0,咦,这是神马情况?是真的都不匹配吗?并不是,而是video列对应的结构和doc存在很大的差异,doc是单个的字符,和word列对应的是一致的,而video则不是!
- video是一级二级在一起的,中间是反斜杠连接的!测试一下就可以知道!‘娱乐’ in ‘娱乐/综艺’ 是false 但其实应该是True 所以首先得进行切分为单独字符 再去判断
- 不能直接去做,因为现在里面是一级标签/二级标签 所以得先拆分开!
df_net_gt_1.head()
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | imei | aid | ... | tr_count_1 | tr_count_2 | tr_count_3 | tr_count_4 | tr_count_5 | tr_count_1_v | tr_count_2_v | tr_count_3_v | tr_count_4_v | tr_count_5_v | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | [娱乐, 社会, 育儿, 美食, 时尚, 健康, 历史, 体育, 动物, 艺术, 情感, 家... | [娱乐_纪实综艺, 人文_变形计, 娱乐_综艺, 娱乐_真人秀, 娱乐_明星八卦, 娱乐_纪... | 0 | 24 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 山西省,太原市, | [娱乐,综艺, 娱乐,电视, 萌宝,默认, 美食,吃播, 娱乐,明星八卦, 动物,萌系动物,... | [娱乐_综艺, 娱乐_真人秀, 娱乐_电视剧, 娱乐_妈妈是超人, 体育_傅园慧, 娱乐_冉... | 352571071345916 | 508ba9c367ab4259 | ... | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | [体育, 娱乐, 社会, 房产, 要闻, 人文, 健康, 历史, 手机, 数码, 教育, 美... | [体育_nba, 体育_cba, 体育_休斯顿火箭, 娱乐_综艺, 体育_林书豪, 娱乐_电... | 0 | 30 | CQkzOTAzZmZiNWI4OTE1MDRjCTM2NTkzMjU1MzU0YjMwOT... | 上海市,上海市, | [娱乐,电视, 娱乐,综艺, 娱乐,电影, 小品,默认, 体育,默认, 体育,CBA, 体育... | [娱乐_电视剧, 娱乐_综艺, 娱乐_喜剧, 娱乐_电影, 艺术_小品, 体育_nba, 娱... | 352936090428771 | 3903ffb5b891504c | ... | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | [社会, 娱乐, 健身, 历史, 军事, 汽车, 情感, 健康, 体育, 财经, 手机, 旅... | [健身_健身, 军事_武器装备, 健身_增肌, 军事_枪械, 娱乐_明星八卦, 社会_违法犯... | 0 | 38 | CQk3ZmE1ZmY4Njg5ZTgyYWFjCTFhNGRkZGFjNzEwYjdlY2... | 陕西省,宝鸡市, | [娱乐,电视, 军事,装备, 娱乐,电影, 科技,科技趣闻, 奇闻趣事,默认, 社会,违法犯... | [娱乐_电视剧, 军事_武器装备, 军事_枪械, 娱乐_电影, 军事_冷兵器, 科技_科学实... | 352936095439450 | 7fa5ff8689e82aac | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
3 | [社会, 娱乐, 搞笑, 手机, 财经, 互联网, 要闻, 教育, 时尚, 体育, 房产, ... | [搞笑_搞笑, 搞笑_搞笑gif, 娱乐_明星八卦, 社会_负面新闻, 社会_违法犯罪, 时... | 1 | 37 | CQk0YzcyODAwYjkxOGQyZDQ5CVNTMkxITUI3NzE0MDEyOT... | 山东省,青岛市, | [动物,默认, 社会,事故, 社会,违法犯罪, 搞笑,默认, 美女,默认, 社会,默认, 科... | [动物_野生动物, 社会_事故, 社会_交通事故, 社会_违法犯罪, 社会_负面新闻, 动物... | 353014080394731 | 4c72800b918d2d49 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
4 | [娱乐, 社会, 手机, 美食, 人文, 财经, 历史, 时尚, 汽车, 旅游, 体育, 数... | [娱乐_明星八卦, 娱乐_电影, 娱乐_综艺, 娱乐_电视剧, 娱乐_当红小生, 娱乐_郭德... | 0 | 27 | CQliZjg0ZDgzMWIyMTZjNjM4CTk4ODk1YTMxNGQzNTM1ND... | 天津市,天津市, | [娱乐,综艺, 娱乐,电视, 娱乐,明星八卦, 娱乐,电影, 社会,违法犯罪, 科技,科技趣... | [娱乐_综艺, 娱乐_明星八卦, 娱乐_喜剧, 娱乐_电影, 社会_违法犯罪, 财经_王思聪... | 354765080647787 | bf84d831b216c638 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
5 rows × 31 columns
df_net_gt_1['video_category'].head()
0 [娱乐,综艺, 娱乐,电视, 萌宝,默认, 美食,吃播, 娱乐,明星八卦, 动物,萌系动物,...
1 [娱乐,电视, 娱乐,综艺, 娱乐,电影, 小品,默认, 体育,默认, 体育,CBA, 体育...
2 [娱乐,电视, 军事,装备, 娱乐,电影, 科技,科技趣闻, 奇闻趣事,默认, 社会,违法犯...
3 [动物,默认, 社会,事故, 社会,违法犯罪, 搞笑,默认, 美女,默认, 社会,默认, 科...
4 [娱乐,综艺, 娱乐,电视, 娱乐,明星八卦, 娱乐,电影, 社会,违法犯罪, 科技,科技趣...
Name: video_category, dtype: object
将反斜杠换成逗号即可!
df_net_gt_1['video_category'][0]
['娱乐,综艺',
'娱乐,电视',
'萌宝,默认',
'美食,吃播',
'娱乐,明星八卦',
'动物,萌系动物',
'社会,事故',
'娱乐,电影',
'音乐,演出现场',
'美食,默认',
'体育,拳击',
'体育,游泳',
'时尚,美妆',
'生活,默认',
'舞蹈,默认',
'社会,公共安全',
'美食,食谱',
'音乐,默认',
'三农,默认',
'奇闻趣事,默认',
'社会,默认',
'搞笑,默认',
'娱乐,默认',
'动物,默认',
'体育,默认',
'科技,科技趣闻',
'历史,默认',
'历史,古代史',
'人文,民俗',
'历史,世界史',
'社会,民生',
'军事,默认',
'社会,国际',
'小品,默认',
'体育,摔跤',
'育儿,亲子',
'社会,违法犯罪',
'游戏,电子竞技',
'育儿,孕期',
'社会,自然灾害',
'军事,军情',
'美女,默认',
'旅游,默认',
'音乐,翻唱',
'历史,近现代史',
'生活,生活常识技巧',
'时尚,默认',
'体育,跳水',
'汽车,驾考',
'体育,极限运动']
len(df_net_gt_1['video_category'][0])
50
# 处理ok的!
def TranToCom(s):
# 将字符都变成独立的
n = len(s)
s2 = []
for i in range(n):
s1 = s[i].split(',')
s2 = s2 + s1
return s2
df_net_gt_1['video_category'] = df_net_gt_1['video_category'].map(TranToCom)
df_net_gt_1['video_category'].head()
0 [娱乐, 综艺, 娱乐, 电视, 萌宝, 默认, 美食, 吃播, 娱乐, 明星八卦, 动物,...
1 [娱乐, 电视, 娱乐, 综艺, 娱乐, 电影, 小品, 默认, 体育, 默认, 体育, C...
2 [娱乐, 电视, 军事, 装备, 娱乐, 电影, 科技, 科技趣闻, 奇闻趣事, 默认, 社...
3 [动物, 默认, 社会, 事故, 社会, 违法犯罪, 搞笑, 默认, 美女, 默认, 社会,...
4 [娱乐, 综艺, 娱乐, 电视, 娱乐, 明星八卦, 娱乐, 电影, 社会, 违法犯罪, 科...
Name: video_category, dtype: object
'狗血' in df_net_gt_1['video_category'][3]
False
print(df_net_gt_1.shape)
df_net_gt_1.head()
(4538, 31)
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | imei | aid | ... | tr_count_1 | tr_count_2 | tr_count_3 | tr_count_4 | tr_count_5 | tr_count_1_v | tr_count_2_v | tr_count_3_v | tr_count_4_v | tr_count_5_v | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | [娱乐, 社会, 育儿, 美食, 时尚, 健康, 历史, 体育, 动物, 艺术, 情感, 家... | [娱乐_纪实综艺, 人文_变形计, 娱乐_综艺, 娱乐_真人秀, 娱乐_明星八卦, 娱乐_纪... | 0 | 24 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 山西省,太原市, | [娱乐, 综艺, 娱乐, 电视, 萌宝, 默认, 美食, 吃播, 娱乐, 明星八卦, 动物,... | [娱乐_综艺, 娱乐_真人秀, 娱乐_电视剧, 娱乐_妈妈是超人, 体育_傅园慧, 娱乐_冉... | 352571071345916 | 508ba9c367ab4259 | ... | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | [体育, 娱乐, 社会, 房产, 要闻, 人文, 健康, 历史, 手机, 数码, 教育, 美... | [体育_nba, 体育_cba, 体育_休斯顿火箭, 娱乐_综艺, 体育_林书豪, 娱乐_电... | 0 | 30 | CQkzOTAzZmZiNWI4OTE1MDRjCTM2NTkzMjU1MzU0YjMwOT... | 上海市,上海市, | [娱乐, 电视, 娱乐, 综艺, 娱乐, 电影, 小品, 默认, 体育, 默认, 体育, C... | [娱乐_电视剧, 娱乐_综艺, 娱乐_喜剧, 娱乐_电影, 艺术_小品, 体育_nba, 娱... | 352936090428771 | 3903ffb5b891504c | ... | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
2 | [社会, 娱乐, 健身, 历史, 军事, 汽车, 情感, 健康, 体育, 财经, 手机, 旅... | [健身_健身, 军事_武器装备, 健身_增肌, 军事_枪械, 娱乐_明星八卦, 社会_违法犯... | 0 | 38 | CQk3ZmE1ZmY4Njg5ZTgyYWFjCTFhNGRkZGFjNzEwYjdlY2... | 陕西省,宝鸡市, | [娱乐, 电视, 军事, 装备, 娱乐, 电影, 科技, 科技趣闻, 奇闻趣事, 默认, 社... | [娱乐_电视剧, 军事_武器装备, 军事_枪械, 娱乐_电影, 军事_冷兵器, 科技_科学实... | 352936095439450 | 7fa5ff8689e82aac | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
3 | [社会, 娱乐, 搞笑, 手机, 财经, 互联网, 要闻, 教育, 时尚, 体育, 房产, ... | [搞笑_搞笑, 搞笑_搞笑gif, 娱乐_明星八卦, 社会_负面新闻, 社会_违法犯罪, 时... | 1 | 37 | CQk0YzcyODAwYjkxOGQyZDQ5CVNTMkxITUI3NzE0MDEyOT... | 山东省,青岛市, | [动物, 默认, 社会, 事故, 社会, 违法犯罪, 搞笑, 默认, 美女, 默认, 社会,... | [动物_野生动物, 社会_事故, 社会_交通事故, 社会_违法犯罪, 社会_负面新闻, 动物... | 353014080394731 | 4c72800b918d2d49 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
4 | [娱乐, 社会, 手机, 美食, 人文, 财经, 历史, 时尚, 汽车, 旅游, 体育, 数... | [娱乐_明星八卦, 娱乐_电影, 娱乐_综艺, 娱乐_电视剧, 娱乐_当红小生, 娱乐_郭德... | 0 | 27 | CQliZjg0ZDgzMWIyMTZjNjM4CTk4ODk1YTMxNGQzNTM1ND... | 天津市,天津市, | [娱乐, 综艺, 娱乐, 电视, 娱乐, 明星八卦, 娱乐, 电影, 社会, 违法犯罪, 科... | [娱乐_综艺, 娱乐_明星八卦, 娱乐_喜剧, 娱乐_电影, 社会_违法犯罪, 财经_王思聪... | 354765080647787 | bf84d831b216c638 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
5 rows × 31 columns
# 放心大胆的进行map+lambda了!
for i in range(len(word_label)):
df_net_gt_1[count_label_v[i]] = df_net_gt_1.index.map(lambda x: CalStr(x, word_label[i], count_label_v[i], 'video_category'))
# 恢复正常
df_net_gt_1['tr_count_5_v'].sum()
341
汇总统计
输出一版统计结果
为什么要输出呢?
- 这也是一个重要的技巧,因为jupyter关闭之后,所有的数据就无法保存了,你只能看到输出结果,但如果想要对哪一个DataFrame进行操作,那必须又得重新运行一遍!所以重要的文件可以输出一版,这样后面进行分析的时候直接导入就好!是不是很机智!?
df_net_gt_1.to_csv('数据全部预处理结果后的结果(去重后).csv', encoding='gbk', index=False)
df_net_gt_1.head()
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | imei | aid | ... | tr_count_1 | tr_count_2 | tr_count_3 | tr_count_4 | tr_count_5 | tr_count_1_v | tr_count_2_v | tr_count_3_v | tr_count_4_v | tr_count_5_v | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | [娱乐, 社会, 育儿, 美食, 时尚, 健康, 历史, 体育, 动物, 艺术, 情感, 家... | [娱乐_纪实综艺, 人文_变形计, 娱乐_综艺, 娱乐_真人秀, 娱乐_明星八卦, 娱乐_纪... | 0 | 24 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 山西省,太原市, | [娱乐, 综艺, 娱乐, 电视, 萌宝, 默认, 美食, 吃播, 娱乐, 明星八卦, 动物,... | [娱乐_综艺, 娱乐_真人秀, 娱乐_电视剧, 娱乐_妈妈是超人, 体育_傅园慧, 娱乐_冉... | 352571071345916 | 508ba9c367ab4259 | ... | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
1 | [体育, 娱乐, 社会, 房产, 要闻, 人文, 健康, 历史, 手机, 数码, 教育, 美... | [体育_nba, 体育_cba, 体育_休斯顿火箭, 娱乐_综艺, 体育_林书豪, 娱乐_电... | 0 | 30 | CQkzOTAzZmZiNWI4OTE1MDRjCTM2NTkzMjU1MzU0YjMwOT... | 上海市,上海市, | [娱乐, 电视, 娱乐, 综艺, 娱乐, 电影, 小品, 默认, 体育, 默认, 体育, C... | [娱乐_电视剧, 娱乐_综艺, 娱乐_喜剧, 娱乐_电影, 艺术_小品, 体育_nba, 娱... | 352936090428771 | 3903ffb5b891504c | ... | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
2 | [社会, 娱乐, 健身, 历史, 军事, 汽车, 情感, 健康, 体育, 财经, 手机, 旅... | [健身_健身, 军事_武器装备, 健身_增肌, 军事_枪械, 娱乐_明星八卦, 社会_违法犯... | 0 | 38 | CQk3ZmE1ZmY4Njg5ZTgyYWFjCTFhNGRkZGFjNzEwYjdlY2... | 陕西省,宝鸡市, | [娱乐, 电视, 军事, 装备, 娱乐, 电影, 科技, 科技趣闻, 奇闻趣事, 默认, 社... | [娱乐_电视剧, 军事_武器装备, 军事_枪械, 娱乐_电影, 军事_冷兵器, 科技_科学实... | 352936095439450 | 7fa5ff8689e82aac | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
3 | [社会, 娱乐, 搞笑, 手机, 财经, 互联网, 要闻, 教育, 时尚, 体育, 房产, ... | [搞笑_搞笑, 搞笑_搞笑gif, 娱乐_明星八卦, 社会_负面新闻, 社会_违法犯罪, 时... | 1 | 37 | CQk0YzcyODAwYjkxOGQyZDQ5CVNTMkxITUI3NzE0MDEyOT... | 山东省,青岛市, | [动物, 默认, 社会, 事故, 社会, 违法犯罪, 搞笑, 默认, 美女, 默认, 社会,... | [动物_野生动物, 社会_事故, 社会_交通事故, 社会_违法犯罪, 社会_负面新闻, 动物... | 353014080394731 | 4c72800b918d2d49 | ... | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
4 | [娱乐, 社会, 手机, 美食, 人文, 财经, 历史, 时尚, 汽车, 旅游, 体育, 数... | [娱乐_明星八卦, 娱乐_电影, 娱乐_综艺, 娱乐_电视剧, 娱乐_当红小生, 娱乐_郭德... | 0 | 27 | CQliZjg0ZDgzMWIyMTZjNjM4CTk4ODk1YTMxNGQzNTM1ND... | 天津市,天津市, | [娱乐, 综艺, 娱乐, 电视, 娱乐, 明星八卦, 娱乐, 电影, 社会, 违法犯罪, 科... | [娱乐_综艺, 娱乐_明星八卦, 娱乐_喜剧, 娱乐_电影, 社会_违法犯罪, 财经_王思聪... | 354765080647787 | bf84d831b216c638 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
5 rows × 31 columns
df_net_gt_1['tr_count_5'].sum()
422
df_net_gt_1['tr_word_1'][i] in df_net_gt_1['video_category'][i]
'娱乐' in ['娱乐/电视']
False
真正的汇总统计
df_net_gt_2 = copy.deepcopy(df_net_gt_1)
print(df_net_gt_2.shape)
df_net_gt_2.head()
(4538, 31)
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | imei | aid | ... | tr_count_1 | tr_count_2 | tr_count_3 | tr_count_4 | tr_count_5 | tr_count_1_v | tr_count_2_v | tr_count_3_v | tr_count_4_v | tr_count_5_v | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | [娱乐, 社会, 育儿, 美食, 时尚, 健康, 历史, 体育, 动物, 艺术, 情感, 家... | [娱乐_纪实综艺, 人文_变形计, 娱乐_综艺, 娱乐_真人秀, 娱乐_明星八卦, 娱乐_纪... | 0 | 24 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 山西省,太原市, | [娱乐, 综艺, 娱乐, 电视, 萌宝, 默认, 美食, 吃播, 娱乐, 明星八卦, 动物,... | [娱乐_综艺, 娱乐_真人秀, 娱乐_电视剧, 娱乐_妈妈是超人, 体育_傅园慧, 娱乐_冉... | 352571071345916 | 508ba9c367ab4259 | ... | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
1 | [体育, 娱乐, 社会, 房产, 要闻, 人文, 健康, 历史, 手机, 数码, 教育, 美... | [体育_nba, 体育_cba, 体育_休斯顿火箭, 娱乐_综艺, 体育_林书豪, 娱乐_电... | 0 | 30 | CQkzOTAzZmZiNWI4OTE1MDRjCTM2NTkzMjU1MzU0YjMwOT... | 上海市,上海市, | [娱乐, 电视, 娱乐, 综艺, 娱乐, 电影, 小品, 默认, 体育, 默认, 体育, C... | [娱乐_电视剧, 娱乐_综艺, 娱乐_喜剧, 娱乐_电影, 艺术_小品, 体育_nba, 娱... | 352936090428771 | 3903ffb5b891504c | ... | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
2 | [社会, 娱乐, 健身, 历史, 军事, 汽车, 情感, 健康, 体育, 财经, 手机, 旅... | [健身_健身, 军事_武器装备, 健身_增肌, 军事_枪械, 娱乐_明星八卦, 社会_违法犯... | 0 | 38 | CQk3ZmE1ZmY4Njg5ZTgyYWFjCTFhNGRkZGFjNzEwYjdlY2... | 陕西省,宝鸡市, | [娱乐, 电视, 军事, 装备, 娱乐, 电影, 科技, 科技趣闻, 奇闻趣事, 默认, 社... | [娱乐_电视剧, 军事_武器装备, 军事_枪械, 娱乐_电影, 军事_冷兵器, 科技_科学实... | 352936095439450 | 7fa5ff8689e82aac | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
3 | [社会, 娱乐, 搞笑, 手机, 财经, 互联网, 要闻, 教育, 时尚, 体育, 房产, ... | [搞笑_搞笑, 搞笑_搞笑gif, 娱乐_明星八卦, 社会_负面新闻, 社会_违法犯罪, 时... | 1 | 37 | CQk0YzcyODAwYjkxOGQyZDQ5CVNTMkxITUI3NzE0MDEyOT... | 山东省,青岛市, | [动物, 默认, 社会, 事故, 社会, 违法犯罪, 搞笑, 默认, 美女, 默认, 社会,... | [动物_野生动物, 社会_事故, 社会_交通事故, 社会_违法犯罪, 社会_负面新闻, 动物... | 353014080394731 | 4c72800b918d2d49 | ... | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
4 | [娱乐, 社会, 手机, 美食, 人文, 财经, 历史, 时尚, 汽车, 旅游, 体育, 数... | [娱乐_明星八卦, 娱乐_电影, 娱乐_综艺, 娱乐_电视剧, 娱乐_当红小生, 娱乐_郭德... | 0 | 27 | CQliZjg0ZDgzMWIyMTZjNjM4CTk4ODk1YTMxNGQzNTM1ND... | 天津市,天津市, | [娱乐, 综艺, 娱乐, 电视, 娱乐, 明星八卦, 娱乐, 电影, 社会, 违法犯罪, 科... | [娱乐_综艺, 娱乐_明星八卦, 娱乐_喜剧, 娱乐_电影, 社会_违法犯罪, 财经_王思聪... | 354765080647787 | bf84d831b216c638 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
5 rows × 31 columns
统计关键词对于文章类别的匹配率
思路:
- 对于count_label = [‘tr_count_1’, ‘tr_count_2’, ‘tr_count_3’, ‘tr_count_4’, ‘tr_count_5’]进行求和
- 上述求和就表明了每一条用户的消息匹配文章类别的次数 范围在0-5之间
对所有的tr_count_all进行一个描述统计
df_net_gt_2['tr_count_all'].describe()
count 5861.000000
mean 0.662003
std 0.873523
min 0.000000
25% 0.000000
50% 0.000000
75% 1.000000
max 4.000000
Name: tr_count_all, dtype: float64
from matplotlib import pyplot as plt
plt.hist(df_net_gt_2['tr_count_all'])
plt.show()
结论:
- 3/4只有一个能匹配上
- 匹配率不高
df_net_gt_2.tail()
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | imei | aid | ... | tr_count_3 | tr_count_4 | tr_count_5 | tr_count_1_v | tr_count_2_v | tr_count_3_v | tr_count_4_v | tr_count_5_v | tr_count_all | tr_count_all_v | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
5856 | [军事, 社会, 要闻, 人文, 探索, 体育, 数码, 生活] | [要闻_俄罗斯, 军事_武器装备, 要闻_乌克兰, 要闻_欧洲要闻, 要闻_国际社会, 要闻... | 0 | 30 | A000005F41540E | 福建省,厦门市, | [社会, 违法犯罪, 军事, 默认, 军事, 军情, 军事, 装备, 社会, 事故, 奇闻趣... | [社会_违法犯罪, 军事_军情, 军事_武器装备, 要闻_俄罗斯, 社会_交通违规, 要闻_... | A000005F41540E | 92a337699d1fbf96 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
5857 | [娱乐, 社会, 情感, 时尚, 健康, 育儿, 互联网, 历史, 美食, 教育, 汽车, ... | [社会_婚姻关系, 情感_夫妻相处, 情感_情感鸡汤, 情感_婚嫁, 娱乐_明星八卦, 社会... | 2 | 37 | A0000060AF18FB | 江苏省,盐城市, | [社会, 事故, 娱乐, 电视, 社会, 默认, 娱乐, 综艺, 搞笑, 默认, 娱乐, 明... | [社会_事故, 社会_交通事故, 社会_负面新闻, 娱乐_当红花旦, 娱乐_赵丽颖, 娱乐_... | A0000060AF18FB | df030a8cf7ee2b64 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
5858 | [时尚, 娱乐, 社会, 健康, 美食, 生活, 三农, 育儿, 情感, 家居, 数码, 房... | [时尚_时装, 时尚_发型, 美食_食谱, 时尚_短发控, 三农_三农, 生活_养花, 社会... | 2 | 37 | A100004569E6A6 | 河北省,保定市, | [生活, 生活常识技巧, 美食, 食谱, 娱乐, 综艺, 娱乐, 明星八卦, 健康, 默认,... | [生活_生活小窍门, 美食_食谱, 美食_烹饪技巧, 娱乐_综艺, 娱乐_真人秀, 生活_创... | A100004569E6A6 | b4d46ea868c07880 | ... | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 2 | 2 |
5859 | [社会, 教育, 游戏, 健康] | [社会_自然灾害, 游戏_梦幻西游, 游戏_游戏战队, 游戏_手游, 游戏_网易游戏, 要闻... | 1 | 32 | A100004E5B8E6A | 江苏省,南通市, | [奇闻趣事, 默认, 军事, 军情, 时尚, 时装, 军事, 装备] | [社会_奇葩事件, 军事_军情, 时尚_维多利亚的秘密, 时尚_超模, 时尚_时装秀, 科技... | A100004E5B8E6A | da2c7ebcfa026808 | ... | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |
5860 | [育儿, 娱乐, 社会, 健康, 旅游, 家居, 人文, 教育, 情感, 体育, 军事, 动... | [育儿_婴幼儿护理, 育儿_宝宝健康, 娱乐_明星八卦, 育儿_婴儿喂养, 育儿_辅食, 育... | NaN | NaN | A100004EC54011 | NaN | [萌宝, 默认, 音乐, 默认, 娱乐, 综艺, 娱乐, 电视, 育儿, 婴幼儿护理, 娱乐... | [搞笑_萌宝, 育儿_婴幼儿护理, 育儿_宝宝健康, 育儿_婴儿喂养, 游戏_冯提莫, 互联... | A100004EC54011 | c92caf7daee30f74 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
5 rows × 33 columns
len(pd.unique(df_net_gt_2['device_uuid']))
4538
同时统计个推关键词与各自文章类别匹配的具体标签层面的情况
思路:
-
将5个word 以及对应的 count进行对应上
-
也就是看所有的word有多少个 以及 匹配率
-
可以先进行rbind【通过list进行append即可!】 然后 value_counts 形成数据框 最后再新加一列就是匹配了多少!
-
先统计频数 然后再看匹配率!
-
还是用字典会快一点!统计匹配率的时候!
-
思路就是出现一个标签就把其放在key的位置,然后value就是匹配次数的一个叠加!
-
最后再把字典给映射到DataFrame,写一个函数就好!
word_label
['tr_word_1', 'tr_word_2', 'tr_word_3', 'tr_word_4', 'tr_word_5']
# 1 先创建一个空数据框
df_word_empty = pd.DataFrame(columns=['key_word'])
# 2 然后把分别五列的word都放到一个list 再层层叠加
data_need_list = []
for label in word_label:
data_need_list += df_net_gt_2[label].tolist()
# 3 将list放到空列表中
df_word_empty['key_word'] = data_need_list
# 4 统计频数并形成DataFrame
df_key_word_fre = df_word_empty['key_word'].value_counts().reset_index() #
df_key_word_fre.head()
index | key_word | |
---|---|---|
0 | 新闻 | 3952 |
1 | 办公 | 3686 |
2 | 拍摄 | 2666 |
3 | 生活 | 2275 |
4 | 文化娱乐 | 1742 |
print(df_key_word_fre.shape)
(182, 2)
print(word_label)
print(count_label)
['tr_word_1', 'tr_word_2', 'tr_word_3', 'tr_word_4', 'tr_word_5']
['tr_count_1', 'tr_count_2', 'tr_count_3', 'tr_count_4', 'tr_count_5']
# 计算匹配率
label_dic = {}
def CreDic(s, word, count):
# 先确定label
key_ = df_net_gt_2[word][s]
# 判断label是否在字典里
if key_ not in label_dic.keys():
# 如果不在 新创建一个值
label_dic[key_] = df_net_gt_2[count][s]
else:
# 如果在 叠加!
label_dic[key_] += df_net_gt_2[count][s]
# 对数据框使用map函数 对每一列的label 都进行k-v的一个对应 叠加!最后形成的字典就是全部过一遍之后的!
for i in range(len(count_label)):
print(i)
df_net_gt_2.index.map(lambda x: CreDic(x, word_label[i], count_label[i]))
print(label_dic)
0
{'数码科技': 0, '生活': 231, '新闻': 0, '音乐': 0, '天津市': 0, '金融': 0, '时尚': 151, '文化娱乐': 0, '理财': 0, '买车': 0, '办公': 0, '休闲': 0, '汽车': 429, '购物': 0, '财经': 25, '综合': 0, '播放器': 0, '父母': 0, '育儿': 9, '社区': 0, '科技': 27, '拍摄': 0, '教育': 18, '医生': 0, '酒店': 0, '资讯': 0, '楼盘': 0, '美食': 3, '体育': 43, '旅行': 0, '射击': 0, '打车': 0, '宿迁市': 0, '母婴': 0, '服务': 0, '装饰': 0, '银行': 0, '视频': 0, '程序员': 0, '游戏': 5, '连云港市': 0, '查询': 0, '娱乐': 9, '居住地': 0, '体育运动': 0, '语言': 0, '团购': 0, '搞笑': 1, '家居用品': 0, '家居': 5, '北京市': 0, '电视': 0, '福州市': 0, '南宁市': 0, '异性恋': 0, '篮球': 0, '违章': 0, '未婚': 0, '重庆市': 0, '网约': 0, '株洲市': 0, '读书': 0, '运动': 0, '考试': 0, '许昌市': 0}
1
{'数码科技': 0, '生活': 607, '新闻': 0, '音乐': 0, '天津市': 0, '金融': 0, '时尚': 340, '文化娱乐': 0, '理财': 0, '买车': 0, '办公': 0, '休闲': 0, '汽车': 581, '购物': 0, '财经': 81, '综合': 0, '播放器': 0, '父母': 0, '育儿': 42, '社区': 0, '科技': 84, '拍摄': 0, '教育': 42, '医生': 0, '酒店': 0, '资讯': 0, '楼盘': 0, '美食': 13, '体育': 82, '旅行': 0, '射击': 0, '打车': 0, '宿迁市': 0, '母婴': 0, '服务': 0, '装饰': 0, '银行': 0, '视频': 0, '程序员': 0, '游戏': 11, '连云港市': 0, '查询': 0, '娱乐': 35, '居住地': 0, '体育运动': 0, '语言': 0, '团购': 0, '搞笑': 1, '家居用品': 0, '家居': 8, '北京市': 0, '电视': 0, '福州市': 0, '南宁市': 0, '异性恋': 0, '篮球': 0, '违章': 0, '未婚': 0, '重庆市': 0, '网约': 0, '株洲市': 0, '读书': 0, '运动': 0, '考试': 0, '许昌市': 0, '图片': 0, '交通': 0, '威海市': 0, '餐厅': 0, '佛山市': 0, '上海市': 0, '电影': 0, '地图': 0, '电台': 0, '汕头市': 0, '跑步': 0, '找对象': 0, '成都市': 0, '黄山市': 0, '石家庄市': 0, '经营策略': 0, '玉林市': 0, '在线视频': 0, '司机': 0, '外卖': 0, '台州市': 0, '无锡市': 0, '莱芜市': 0, '杭州市': 0, '单身': 0, '编程': 0, '棋牌': 0, '手机': 0, '出境游': 0, '武汉市': 0, '徐州市': 0, '东莞市': 0}
2
{'数码科技': 0, '生活': 854, '新闻': 0, '音乐': 0, '天津市': 0, '金融': 0, '时尚': 569, '文化娱乐': 0, '理财': 0, '买车': 0, '办公': 0, '休闲': 0, '汽车': 678, '购物': 0, '财经': 162, '综合': 0, '播放器': 0, '父母': 0, '育儿': 78, '社区': 0, '科技': 108, '拍摄': 0, '教育': 64, '医生': 0, '酒店': 0, '资讯': 0, '楼盘': 0, '美食': 38, '体育': 113, '旅行': 0, '射击': 0, '打车': 0, '宿迁市': 0, '母婴': 0, '服务': 0, '装饰': 0, '银行': 0, '视频': 0, '程序员': 0, '游戏': 13, '连云港市': 0, '查询': 0, '娱乐': 62, '居住地': 0, '体育运动': 0, '语言': 0, '团购': 0, '搞笑': 1, '家居用品': 0, '家居': 11, '北京市': 0, '电视': 0, '福州市': 0, '南宁市': 0, '异性恋': 0, '篮球': 0, '违章': 0, '未婚': 0, '重庆市': 0, '网约': 0, '株洲市': 0, '读书': 0, '运动': 0, '考试': 0, '许昌市': 0, '图片': 0, '交通': 0, '威海市': 0, '餐厅': 0, '佛山市': 0, '上海市': 0, '电影': 0, '地图': 0, '电台': 0, '汕头市': 0, '跑步': 0, '找对象': 0, '成都市': 0, '黄山市': 0, '石家庄市': 0, '经营策略': 0, '玉林市': 0, '在线视频': 0, '司机': 0, '外卖': 0, '台州市': 0, '无锡市': 0, '莱芜市': 0, '杭州市': 0, '单身': 0, '编程': 0, '棋牌': 0, '手机': 1, '出境游': 0, '武汉市': 0, '徐州市': 0, '东莞市': 0, '网购': 0, '军事': 2, '奔驰': 0, '驾考': 0, '江门市': 0, '足球': 0, '铃声': 0, '电视直播': 0, '天气': 0, '已婚': 0, '西安市': 0, '车主': 0, '佳木斯市': 0, '角色扮演': 0, '爱车': 0, '动作': 0, '哈尔滨市': 0, '情感': 4, '遵义市': 0, '榆林市': 0, '武威市': 0, '泰安市': 0, '标致': 0, '扬州市': 0, '宁波市': 0, '贵港市': 0, '南京市': 0, '广州市': 0, '郑州市': 0, '文山壮族苗族自治州': 0, '男同': 0, '抚州市': 0, '南阳市': 0}
3
{'数码科技': 0, '生活': 1069, '新闻': 0, '音乐': 0, '天津市': 0, '金融': 0, '时尚': 715, '文化娱乐': 0, '理财': 0, '买车': 0, '办公': 0, '休闲': 0, '汽车': 765, '购物': 0, '财经': 246, '综合': 0, '播放器': 0, '父母': 0, '育儿': 106, '社区': 0, '科技': 131, '拍摄': 0, '教育': 81, '医生': 0, '酒店': 0, '资讯': 0, '楼盘': 0, '美食': 65, '体育': 142, '旅行': 0, '射击': 0, '打车': 0, '宿迁市': 0, '母婴': 0, '服务': 0, '装饰': 0, '银行': 0, '视频': 0, '程序员': 0, '游戏': 17, '连云港市': 0, '查询': 0, '娱乐': 87, '居住地': 0, '体育运动': 0, '语言': 0, '团购': 0, '搞笑': 4, '家居用品': 0, '家居': 14, '北京市': 0, '电视': 0, '福州市': 0, '南宁市': 0, '异性恋': 0, '篮球': 0, '违章': 0, '未婚': 0, '重庆市': 0, '网约': 0, '株洲市': 0, '读书': 0, '运动': 0, '考试': 0, '许昌市': 0, '图片': 0, '交通': 0, '威海市': 0, '餐厅': 0, '佛山市': 0, '上海市': 0, '电影': 0, '地图': 0, '电台': 0, '汕头市': 0, '跑步': 0, '找对象': 0, '成都市': 0, '黄山市': 0, '石家庄市': 0, '经营策略': 0, '玉林市': 0, '在线视频': 0, '司机': 0, '外卖': 0, '台州市': 0, '无锡市': 0, '莱芜市': 0, '杭州市': 0, '单身': 0, '编程': 0, '棋牌': 0, '手机': 2, '出境游': 0, '武汉市': 0, '徐州市': 0, '东莞市': 0, '网购': 0, '军事': 8, '奔驰': 0, '驾考': 0, '江门市': 0, '足球': 0, '铃声': 0, '电视直播': 0, '天气': 0, '已婚': 0, '西安市': 0, '车主': 0, '佳木斯市': 0, '角色扮演': 0, '爱车': 0, '动作': 0, '哈尔滨市': 0, '情感': 4, '遵义市': 0, '榆林市': 0, '武威市': 0, '泰安市': 0, '标致': 0, '扬州市': 0, '宁波市': 0, '贵港市': 0, '南京市': 0, '广州市': 0, '郑州市': 0, '文山壮族苗族自治州': 0, '男同': 0, '抚州市': 0, '南阳市': 0, '温州市': 0, '阳泉市': 0, '在线音乐': 0, '盐城市': 0, '家长': 0, '苏州市': 0, '经期': 0, '深圳市': 0, '新乡市': 0, '竞速': 0, '租车': 0, '南通市': 0, '邮箱': 0, '泰州市': 0, '加拿大': 0, '滨州市': 0, '医疗': 0, '健身': 2, '热点': 0, '笔记': 0, '黔西南布依族苗族自治州': 0, '呼和浩特市': 0, '烟台市': 0, '家乡': 0, '阳江市': 0}
4
{'数码科技': 0, '生活': 1160, '新闻': 0, '音乐': 0, '天津市': 0, '金融': 0, '时尚': 799, '文化娱乐': 0, '理财': 0, '买车': 0, '办公': 0, '休闲': 0, '汽车': 815, '购物': 0, '财经': 301, '综合': 0, '播放器': 0, '父母': 0, '育儿': 122, '社区': 0, '科技': 159, '拍摄': 0, '教育': 107, '医生': 0, '酒店': 0, '资讯': 0, '楼盘': 0, '美食': 88, '体育': 164, '旅行': 0, '射击': 0, '打车': 0, '宿迁市': 0, '母婴': 0, '服务': 0, '装饰': 0, '银行': 0, '视频': 0, '程序员': 0, '游戏': 20, '连云港市': 0, '查询': 0, '娱乐': 103, '居住地': 0, '体育运动': 0, '语言': 0, '团购': 0, '搞笑': 5, '家居用品': 0, '家居': 18, '北京市': 0, '电视': 0, '福州市': 0, '南宁市': 0, '异性恋': 0, '篮球': 0, '违章': 0, '未婚': 0, '重庆市': 0, '网约': 0, '株洲市': 0, '读书': 0, '运动': 0, '考试': 0, '许昌市': 0, '图片': 0, '交通': 0, '威海市': 0, '餐厅': 0, '佛山市': 0, '上海市': 0, '电影': 0, '地图': 0, '电台': 0, '汕头市': 0, '跑步': 0, '找对象': 0, '成都市': 0, '黄山市': 0, '石家庄市': 0, '经营策略': 0, '玉林市': 0, '在线视频': 0, '司机': 0, '外卖': 0, '台州市': 0, '无锡市': 0, '莱芜市': 0, '杭州市': 0, '单身': 0, '编程': 0, '棋牌': 0, '手机': 2, '出境游': 0, '武汉市': 0, '徐州市': 0, '东莞市': 0, '网购': 0, '军事': 9, '奔驰': 0, '驾考': 0, '江门市': 0, '足球': 0, '铃声': 0, '电视直播': 0, '天气': 0, '已婚': 0, '西安市': 0, '车主': 0, '佳木斯市': 0, '角色扮演': 0, '爱车': 0, '动作': 0, '哈尔滨市': 0, '情感': 6, '遵义市': 0, '榆林市': 0, '武威市': 0, '泰安市': 0, '标致': 0, '扬州市': 0, '宁波市': 0, '贵港市': 0, '南京市': 0, '广州市': 0, '郑州市': 0, '文山壮族苗族自治州': 0, '男同': 0, '抚州市': 0, '南阳市': 0, '温州市': 0, '阳泉市': 0, '在线音乐': 0, '盐城市': 0, '家长': 0, '苏州市': 0, '经期': 0, '深圳市': 0, '新乡市': 0, '竞速': 0, '租车': 0, '南通市': 0, '邮箱': 0, '泰州市': 0, '加拿大': 0, '滨州市': 0, '医疗': 0, '健身': 2, '热点': 0, '笔记': 0, '黔西南布依族苗族自治州': 0, '呼和浩特市': 0, '烟台市': 0, '家乡': 0, '阳江市': 0, '摄像': 0, '安庆市': 0, '中学生': 0, '吉利': 0, '大陆': 0, '动漫': 0, '景德镇市': 0, '装潢': 0, '乐山市': 0, '惠州市': 0, '股票交易': 0, '鞍山市': 0, '生鲜': 0, '莆田市': 0, '汽车品牌': 0, '阿尔及利亚': 0, '廊坊市': 0, '衡阳市': 0, '济南市': 0, '金华市': 0, '广安市': 0, '服饰': 0, '代驾': 0, '洛阳市': 0, '信用卡': 0, '旅游': 0, '家装': 0}
label_dic['生活']
1160
将字典映射到数据框上
df_key_word_fre.head()
index | key_word | |
---|---|---|
0 | 新闻 | 3952 |
1 | 办公 | 3686 |
2 | 拍摄 | 2666 |
3 | 生活 | 2275 |
4 | 文化娱乐 | 1742 |
def TransDic(key):
if key in label_dic.keys():
return label_dic[key]
else:
return 'null'
df_key_word_fre['match_num'] = df_key_word_fre['index'].map(TransDic)
df_key_word_fre.head()
index | key_word | match_num | |
---|---|---|---|
0 | 新闻 | 3952 | 0 |
1 | 办公 | 3686 | 0 |
2 | 拍摄 | 2666 | 0 |
3 | 生活 | 2275 | 1160 |
4 | 文化娱乐 | 1742 | 0 |
df_key_word_fre.sort_values(by='match_num', ascending=0)
index | key_word | match_num | |
---|---|---|---|
3 | 生活 | 2275 | 1160 |
9 | 汽车 | 951 | 815 |
8 | 时尚 | 1116 | 799 |
16 | 财经 | 342 | 301 |
21 | 体育 | 173 | 164 |
18 | 科技 | 221 | 159 |
23 | 育儿 | 155 | 122 |
26 | 教育 | 125 | 107 |
28 | 娱乐 | 111 | 103 |
29 | 美食 | 108 | 88 |
49 | 游戏 | 30 | 20 |
51 | 家居 | 24 | 18 |
65 | 军事 | 11 | 9 |
75 | 情感 | 6 | 6 |
74 | 搞笑 | 8 | 5 |
77 | 手机 | 6 | 2 |
101 | 健身 | 2 | 2 |
122 | 惠州市 | 1 | 0 |
137 | 家装 | 1 | 0 |
123 | 株洲市 | 1 | 0 |
136 | 洛阳市 | 1 | 0 |
124 | 装潢 | 1 | 0 |
125 | 东莞市 | 1 | 0 |
133 | 动漫 | 1 | 0 |
132 | 许昌市 | 1 | 0 |
135 | 乐山市 | 1 | 0 |
127 | 武威市 | 1 | 0 |
128 | 编程 | 1 | 0 |
134 | 汕头市 | 1 | 0 |
129 | 男同 | 1 | 0 |
... | ... | ... | ... |
88 | 跑步 | 4 | 0 |
89 | 成都市 | 4 | 0 |
90 | 福州市 | 4 | 0 |
1 | 办公 | 3686 | 0 |
92 | 苏州市 | 3 | 0 |
93 | 电视 | 3 | 0 |
94 | 家乡 | 3 | 0 |
95 | 摄像 | 3 | 0 |
96 | 单身 | 2 | 0 |
79 | 动作 | 6 | 0 |
78 | 电影 | 6 | 0 |
76 | 南宁市 | 6 | 0 |
63 | 找对象 | 14 | 0 |
56 | 网约 | 21 | 0 |
57 | 酒店 | 17 | 0 |
58 | 考试 | 16 | 0 |
59 | 租车 | 15 | 0 |
60 | 司机 | 15 | 0 |
61 | 语言 | 14 | 0 |
62 | 程序员 | 14 | 0 |
64 | 天气 | 12 | 0 |
73 | 团购 | 8 | 0 |
66 | 棋牌 | 11 | 0 |
67 | 医生 | 10 | 0 |
68 | 家居用品 | 10 | 0 |
69 | 未婚 | 9 | 0 |
70 | 已婚 | 9 | 0 |
71 | 天津市 | 8 | 0 |
72 | 在线音乐 | 8 | 0 |
181 | 滨州市 | 1 | 0 |
182 rows × 3 columns
封装成函数
from matplotlib import pyplot as plt
def TransDic(key):
# 将字典映射到数据框
if key in label_dic.keys():
return label_dic[key]
else:
return 'null'
def CreDic(s, word, count):
# 将标签和对应的count都放到字典里 便于后面计数
# 先确定label
key_ = df_net_gt_2[word][s]
# 判断label是否在字典里
if key_ not in label_dic.keys():
# 如果不在 新创建一个值
label_dic[key_] = df_net_gt_2[count][s]
else:
# 如果在 叠加!
label_dic[key_] += df_net_gt_2[count][s]
def work(count_all, count_label, df_net_gt_2, word_label):
# 参数解释
# count_all:表示把五个count求和之后命名的新字段
# count_label:表示具体是哪五个计数的label 是对应到doc还是video?
# df_net_gt_2:传入数据框
# word_label:计算出来的关键词的 字段名称列表
# 一、计算tr_count_all 也就是5个关键词匹配度的求和
df_net_gt_2[count_all] = 0
for label in count_label:
df_net_gt_2[count_all] += df_net_gt_2[label]
# 二、描述tr_count_all的基本情况
df_net_gt_2[count_all].describe()
# 可视化展示
plt.hist(df_net_gt_2[count_all])
plt.show()
# 三、统计所有标签的情况
# 1 先创建一个空数据框
df_word_empty = pd.DataFrame(columns=['key_word'])
# 2 然后把分别五列的word都放到一个list 再层层叠加
data_need_list = []
for label in word_label:
data_need_list += df_net_gt_2[label].tolist()
# 3 将list放到空列表中
df_word_empty['key_word'] = data_need_list
# 4 统计频数并形成DataFrame
df_key_word_fre = df_word_empty['key_word'].value_counts().reset_index() #
df_key_word_fre.head()
# 四、计算匹配度
# 五、对数据框使用map函数 填充字典!
for i in range(len(count_label)):
print(i)
df_net_gt_2.index.map(lambda x: CreDic(x, word_label[i], count_label[i]))
# 六、对数据框使用map函数
df_key_word_fre['match_num'] = df_key_word_fre['index'].map(TransDic)
df_key_word_fre.head()
return df_key_word_fre, df_net_gt_2
print(count_label)
print(word_label)
['tr_count_1', 'tr_count_2', 'tr_count_3', 'tr_count_4', 'tr_count_5']
['tr_word_1', 'tr_word_2', 'tr_word_3', 'tr_word_4', 'tr_word_5']
# 实现
# 定义一个空字典用来装label和count结果
label_dic = {}
df_key_word_fre, df_net_gt_2 = work('tr_count_all', count_label, df_net_gt_2, word_label)
0
1
2
3
4
print(df_key_word_fre.shape)
df_key_word_fre.head()
df_key_word_fre.to_csv('doc_标签统计结果_匹配率(去重后).csv', encoding='gbk', index=False)
(182, 3)
df_key_word_fre.head()
index | key_word | match_num | |
---|---|---|---|
0 | 新闻 | 2629 | 0 |
1 | 办公 | 2363 | 0 |
2 | 生活 | 2275 | 1160 |
3 | 文化娱乐 | 1742 | 0 |
4 | 拍摄 | 1343 | 0 |
print(df_net_gt_2.shape)
df_net_gt_2.head()
(4538, 32)
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | imei | aid | ... | tr_count_2 | tr_count_3 | tr_count_4 | tr_count_5 | tr_count_1_v | tr_count_2_v | tr_count_3_v | tr_count_4_v | tr_count_5_v | tr_count_all | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | [娱乐, 社会, 育儿, 美食, 时尚, 健康, 历史, 体育, 动物, 艺术, 情感, 家... | [娱乐_纪实综艺, 人文_变形计, 娱乐_综艺, 娱乐_真人秀, 娱乐_明星八卦, 娱乐_纪... | 0 | 24 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 山西省,太原市, | [娱乐, 综艺, 娱乐, 电视, 萌宝, 默认, 美食, 吃播, 娱乐, 明星八卦, 动物,... | [娱乐_综艺, 娱乐_真人秀, 娱乐_电视剧, 娱乐_妈妈是超人, 体育_傅园慧, 娱乐_冉... | 352571071345916 | 508ba9c367ab4259 | ... | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
1 | [体育, 娱乐, 社会, 房产, 要闻, 人文, 健康, 历史, 手机, 数码, 教育, 美... | [体育_nba, 体育_cba, 体育_休斯顿火箭, 娱乐_综艺, 体育_林书豪, 娱乐_电... | 0 | 30 | CQkzOTAzZmZiNWI4OTE1MDRjCTM2NTkzMjU1MzU0YjMwOT... | 上海市,上海市, | [娱乐, 电视, 娱乐, 综艺, 娱乐, 电影, 小品, 默认, 体育, 默认, 体育, C... | [娱乐_电视剧, 娱乐_综艺, 娱乐_喜剧, 娱乐_电影, 艺术_小品, 体育_nba, 娱... | 352936090428771 | 3903ffb5b891504c | ... | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 2 |
2 | [社会, 娱乐, 健身, 历史, 军事, 汽车, 情感, 健康, 体育, 财经, 手机, 旅... | [健身_健身, 军事_武器装备, 健身_增肌, 军事_枪械, 娱乐_明星八卦, 社会_违法犯... | 0 | 38 | CQk3ZmE1ZmY4Njg5ZTgyYWFjCTFhNGRkZGFjNzEwYjdlY2... | 陕西省,宝鸡市, | [娱乐, 电视, 军事, 装备, 娱乐, 电影, 科技, 科技趣闻, 奇闻趣事, 默认, 社... | [娱乐_电视剧, 军事_武器装备, 军事_枪械, 娱乐_电影, 军事_冷兵器, 科技_科学实... | 352936095439450 | 7fa5ff8689e82aac | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
3 | [社会, 娱乐, 搞笑, 手机, 财经, 互联网, 要闻, 教育, 时尚, 体育, 房产, ... | [搞笑_搞笑, 搞笑_搞笑gif, 娱乐_明星八卦, 社会_负面新闻, 社会_违法犯罪, 时... | 1 | 37 | CQk0YzcyODAwYjkxOGQyZDQ5CVNTMkxITUI3NzE0MDEyOT... | 山东省,青岛市, | [动物, 默认, 社会, 事故, 社会, 违法犯罪, 搞笑, 默认, 美女, 默认, 社会,... | [动物_野生动物, 社会_事故, 社会_交通事故, 社会_违法犯罪, 社会_负面新闻, 动物... | 353014080394731 | 4c72800b918d2d49 | ... | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
4 | [娱乐, 社会, 手机, 美食, 人文, 财经, 历史, 时尚, 汽车, 旅游, 体育, 数... | [娱乐_明星八卦, 娱乐_电影, 娱乐_综艺, 娱乐_电视剧, 娱乐_当红小生, 娱乐_郭德... | 0 | 27 | CQliZjg0ZDgzMWIyMTZjNjM4CTk4ODk1YTMxNGQzNTM1ND... | 天津市,天津市, | [娱乐, 综艺, 娱乐, 电视, 娱乐, 明星八卦, 娱乐, 电影, 社会, 违法犯罪, 科... | [娱乐_综艺, 娱乐_明星八卦, 娱乐_喜剧, 娱乐_电影, 社会_违法犯罪, 财经_王思聪... | 354765080647787 | bf84d831b216c638 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
5 rows × 32 columns
统计关键词对于视频类别的匹配率
同时统计关键词与视频类别匹配的具体标签层面的情况
直接跑一下上面封装的函数即可!
print(count_label_v)
print(word_label)
['tr_count_1_v', 'tr_count_2_v', 'tr_count_3_v', 'tr_count_4_v', 'tr_count_5_v']
['tr_word_1', 'tr_word_2', 'tr_word_3', 'tr_word_4', 'tr_word_5']
# 实现
# 定义一个空字典用来装label和count结果
label_dic = {}
df_key_word_fre_v, df_net_gt_2 = work('tr_count_all_v', count_label_v, df_net_gt_2, word_label)
0
1
2
3
4
print(df_key_word_fre_v.shape)
df_key_word_fre_v.head()
df_key_word_fre_v.to_csv('vid_标签统计结果_匹配率(去重后).csv', encoding='gbk', index=False)
(182, 3)
df_key_word_fre_v.head()
index | key_word | match_num | |
---|---|---|---|
0 | 新闻 | 2629 | 0 |
1 | 办公 | 2363 | 0 |
2 | 生活 | 2275 | 998 |
3 | 文化娱乐 | 1742 | 0 |
4 | 拍摄 | 1343 | 0 |
print(df_net_gt_2.shape)
df_net_gt_2.head()
(4538, 33)
doc_category | doc_interest | gender | age | devid | location_code | video_category | video_interest | imei | aid | ... | tr_count_3 | tr_count_4 | tr_count_5 | tr_count_1_v | tr_count_2_v | tr_count_3_v | tr_count_4_v | tr_count_5_v | tr_count_all | tr_count_all_v | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | [娱乐, 社会, 育儿, 美食, 时尚, 健康, 历史, 体育, 动物, 艺术, 情感, 家... | [娱乐_纪实综艺, 人文_变形计, 娱乐_综艺, 娱乐_真人秀, 娱乐_明星八卦, 娱乐_纪... | 0 | 24 | CQk1MDhiYTljMzY3YWI0MjU5CTA4MTVmODliNTYyMDFlMD... | 山西省,太原市, | [娱乐, 综艺, 娱乐, 电视, 萌宝, 默认, 美食, 吃播, 娱乐, 明星八卦, 动物,... | [娱乐_综艺, 娱乐_真人秀, 娱乐_电视剧, 娱乐_妈妈是超人, 体育_傅园慧, 娱乐_冉... | 352571071345916 | 508ba9c367ab4259 | ... | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 |
1 | [体育, 娱乐, 社会, 房产, 要闻, 人文, 健康, 历史, 手机, 数码, 教育, 美... | [体育_nba, 体育_cba, 体育_休斯顿火箭, 娱乐_综艺, 体育_林书豪, 娱乐_电... | 0 | 30 | CQkzOTAzZmZiNWI4OTE1MDRjCTM2NTkzMjU1MzU0YjMwOT... | 上海市,上海市, | [娱乐, 电视, 娱乐, 综艺, 娱乐, 电影, 小品, 默认, 体育, 默认, 体育, C... | [娱乐_电视剧, 娱乐_综艺, 娱乐_喜剧, 娱乐_电影, 艺术_小品, 体育_nba, 娱... | 352936090428771 | 3903ffb5b891504c | ... | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 2 | 1 |
2 | [社会, 娱乐, 健身, 历史, 军事, 汽车, 情感, 健康, 体育, 财经, 手机, 旅... | [健身_健身, 军事_武器装备, 健身_增肌, 军事_枪械, 娱乐_明星八卦, 社会_违法犯... | 0 | 38 | CQk3ZmE1ZmY4Njg5ZTgyYWFjCTFhNGRkZGFjNzEwYjdlY2... | 陕西省,宝鸡市, | [娱乐, 电视, 军事, 装备, 娱乐, 电影, 科技, 科技趣闻, 奇闻趣事, 默认, 社... | [娱乐_电视剧, 军事_武器装备, 军事_枪械, 娱乐_电影, 军事_冷兵器, 科技_科学实... | 352936095439450 | 7fa5ff8689e82aac | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
3 | [社会, 娱乐, 搞笑, 手机, 财经, 互联网, 要闻, 教育, 时尚, 体育, 房产, ... | [搞笑_搞笑, 搞笑_搞笑gif, 娱乐_明星八卦, 社会_负面新闻, 社会_违法犯罪, 时... | 1 | 37 | CQk0YzcyODAwYjkxOGQyZDQ5CVNTMkxITUI3NzE0MDEyOT... | 山东省,青岛市, | [动物, 默认, 社会, 事故, 社会, 违法犯罪, 搞笑, 默认, 美女, 默认, 社会,... | [动物_野生动物, 社会_事故, 社会_交通事故, 社会_违法犯罪, 社会_负面新闻, 动物... | 353014080394731 | 4c72800b918d2d49 | ... | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |
4 | [娱乐, 社会, 手机, 美食, 人文, 财经, 历史, 时尚, 汽车, 旅游, 体育, 数... | [娱乐_明星八卦, 娱乐_电影, 娱乐_综艺, 娱乐_电视剧, 娱乐_当红小生, 娱乐_郭德... | 0 | 27 | CQliZjg0ZDgzMWIyMTZjNjM4CTk4ODk1YTMxNGQzNTM1ND... | 天津市,天津市, | [娱乐, 综艺, 娱乐, 电视, 娱乐, 明星八卦, 娱乐, 电影, 社会, 违法犯罪, 科... | [娱乐_综艺, 娱乐_明星八卦, 娱乐_喜剧, 娱乐_电影, 社会_违法犯罪, 财经_王思聪... | 354765080647787 | bf84d831b216c638 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
5 rows × 33 columns
数据
由于数据属于公司内部数据,故出于保密性要求,不能提供哈~ 方法是第一位的!加油!