Python | 数据匹配+统计

背景

  • 读入一个json数据
  • 然后进行规整为数据框
  • 并和已有数据框进行merge 再进行后续分析

读入json数据

让我们先来看看实际的数据是长什么样子的:截取了前八行
Python | 数据匹配+统计_第1张图片
可以看到数据是很混乱的,我们首先需要确定我们有多少列,即列名首先得确定,然后并不是每一行的数据都有所有的列!那该咋办呢?

思路:

  • 先找到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()

Python | 数据匹配+统计_第2张图片

结论:

  • 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)

Python | 数据匹配+统计_第3张图片

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)

Python | 数据匹配+统计_第4张图片

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

数据

由于数据属于公司内部数据,故出于保密性要求,不能提供哈~ 方法是第一位的!加油!

你可能感兴趣的:(Python)