Pandas + Pyecharts | ADX游戏广告投放渠道综合分析

简介: Pandas + Pyecharts | ADX游戏广告投放渠道综合分析

大家好,我是欧K。ADX英文全称“Ad Exchange”,是一个汇聚各种媒体流量的大规模交易平台。本期我们将进行游戏公司广告投放平台分析,看看游戏公司都喜欢投放在哪些媒体平台,希望对你有所帮助。


涉及到的内容:re — 正则表达式
pandas — 数据处理
collections — 数据统计
pyecharts — 数据可视化


1. 导入模块

代码:

import re
import pandas as pd
from collections import Counter
from pyecharts.charts import Line
from pyecharts.charts import Pie
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from pyecharts.charts import WordCloud
from pyecharts.globals import SymbolType

如果模块缺失,直接pip安装即可。


2. pandas数据处理

2.1 读取数据

df = pd.read_excel('games.xlsx')
df.head(3)

结果:

2.2 浏览数据信息

df.info()

效果:


2.3 查看有无空值

df.isnull().sum()

效果:


3. Collections数据统计

3.1 统计广告位平台

ads = df['广告位'].values.tolist()
mediastr = ' '.join(ads)
medialist = re.findall('\(\'(.*?)\'', mediastr)
ac = Counter(medialist)

结果:

Counter({'今日头条': 1186, '抖音': 1098, '抖音火山版': 1089, '西瓜视频': 1087, '穿山甲联盟': 855, '腾讯新闻': 600, '天天快报': 585, '腾讯视频': 579, '优量广告': 507, '腾讯QQ': 489, 'QQ浏览器': 483, '快手': 393, '手机百度': 357, '爱奇艺': 349, '好看视频': 317, '网易新闻': 313, '虎扑': 302, 'UC头条': 227, '糗事百科': 222, '微信': 155, '华为浏览器': 132, '优酷视频': 65, '百度贴吧': 49, 'taptap': 38, 'Bilibili': 29, '知乎': 25, '新浪微博': 11, '全民小视频': 11, 'WiFi万能钥匙': 5})

3.2 广告平台列表、集合、字典

print(list(ac))
print('\n')
print(set(ac))
print('\n')
print(dict(ac))

结果

['穿山甲联盟', '快手', '今日头条', '天天快报', '腾讯视频', '抖音火山版', '抖音', '西瓜视频', '优量广告', 'QQ浏览器', '腾讯新闻', '网易新闻', 'UC头条', '手机百度', '腾讯QQ', '好看视频', '爱奇艺', '百度贴吧', '虎扑', '优酷视频', '知乎', '糗事百科', '微信', '华为浏览器', 'Bilibili', '新浪微博', 'taptap', '全民小视频', 'WiFi万能钥匙']
{'全民小视频', 'QQ浏览器', '天天快报', '快手', '微信', '抖音', '百度贴吧', 'WiFi万能钥匙', '知乎', '华为浏览器', '网易新闻', '优量广告', '新浪微博', '西瓜视频', 'taptap', '优酷视频', '好看视频', 'UC头条', '抖音火山版', '糗事百科', '腾讯QQ', '手机百度', '虎扑', '爱奇艺', '今日头条', '穿山甲联盟', '腾讯新闻', '腾讯视频', 'Bilibili'}
{'穿山甲联盟': 855, '快手': 393, '今日头条': 1186, '天天快报': 585, '腾讯视频': 579, '抖音火山版': 1089, '抖音': 1098, '西瓜视频': 1087, '优量广告': 507, 'QQ浏览器': 483, '腾讯新闻': 600, '网易新闻': 313, 'UC头条': 227, '手机百度': 357, '腾讯QQ': 489, '好看视频': 317, '爱奇艺': 349, '百度贴吧': 49, '虎扑': 302, '优酷视频': 65, '知乎': 25, '糗事百科': 222, '微信': 155, '华为浏览器': 132, 'Bilibili': 29, '新浪微博': 11, 'taptap': 38, '全民小视频': 11, 'WiFi万能钥匙': 5}


3.3 广告平台投放前10的平台

ac.most_common(10)

结果:

3.4 广告平台投放后10的平台

ac.most_common()[:-10-1:-1]

结果:

4. tions数据统计Pyecharts可视化

4.1 游戏类型占比饼图TOP30

代码:

g_type = df['游戏类型'].values.tolist()
g_typestr = '、'.join(g_type)
g_typelist = g_typestr.split('、')
g_typelist
gc = Counter(g_typelist)
del gc['无']
g_sorted = sorted(gc.items(), key=lambda x: x[1], reverse=True)
g_list = [b[0] for b in g_sorted][:30]
g_values = [b[1] for b in g_sorted][:30]
c0 = (
    Pie()
    .add(
        "",
        [list(z) for z in zip(g_list, g_values)],
        radius=["30%", "50%"],
    center=['50%', '60%'],)
    .set_global_opts(title_opts=opts.TitleOpts(title='游戏类型占比饼图'),
                legend_opts=opts.LegendOpts(pos_top="10%")
                )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")
    )
)
c0.render_notebook()

效果:

4.2 游戏类型柱状图(横向)

代码:

bar0 = (
    Bar()
    .add_xaxis([b[0] for b in g_sorted])
    .add_yaxis('', [b[1] for b in g_sorted])
    .set_global_opts(
        title_opts=opts.TitleOpts(title='各类游戏数量'),
        yaxis_opts=opts.AxisOpts(name='数量'),
        xaxis_opts=opts.AxisOpts(name='游戏类型'),
        datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_='inside')],)
    .set_series_opts(
        label_opts=opts.LabelOpts(is_show=True),
        markpoint_opts=opts.MarkPointOpts(
            data=[
                opts.MarkPointItem(type_="max", name="最大值"),
                opts.MarkPointItem(type_="min", name="最小值"),
                opts.MarkPointItem(type_="average", name="平均值"),
            ]
        ),
    )
)
bar0.render_notebook()

效果:

4.3 游戏类型柱状图TOP30(纵向)

4.4 游戏投放广告平台占比玫瑰图

代码:

c0 = (
    Pie()
    .add(
        "",
        [list(z) for z in zip(m_list, m_values)],
        radius=["30%", "50%"],
        rosetype="radius")
    .set_global_opts(title_opts=opts.TitleOpts(title='游戏投放广告平台占比',pos_top="2%"),
                legend_opts=opts.LegendOpts(type_="scroll", pos_left="90%",pos_top="10%",orient="vertical")
                )
    .set_series_opts(label_opts=opts.LabelOpts(
        position="outside",
        formatter="\n {b}:{c}--占比:{d}%"))
    )
c0.render_notebook()

效果:


可以直观的看到今日头条、抖音、抖音火山版、西瓜视频、穿山甲联盟、腾讯新闻、腾讯QQ等平台游戏广告投放占比比较大,这也是目前比较火热的几个平台,基本符合目前的行情。


4.5 游戏投放媒体平台占比玫瑰图TOP20 可以直观的看到游戏投放占比比较大的媒体有信息流广告、信息流视频广告、新闻业广告虎扑、东方头条、悦头条、墨迹天气


4.6 游戏联运公司与投放媒体数目分布


代码:

l = (
    Line()
    .add_xaxis(df['游戏名称'].values.tolist())
    .add_yaxis("联运公司", df['联运公司'].values.tolist(),color='#ed1941',is_smooth=True,stack='stack1')
    .add_yaxis("投放媒体数目", df['投放媒体数目'].values.tolist(), color='#00ae9d',is_smooth=True,stack='stack1')
    .set_series_opts(
        areastyle_opts=opts.AreaStyleOpts(opacity=0.9),
        label_opts=opts.LabelOpts(is_show=True),
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="游戏联运公司与投放媒体数目分布"),
        xaxis_opts=opts.AxisOpts(
            axistick_opts=opts.AxisTickOpts(is_align_with_label=True),
            is_scale=False,
            boundary_gap=False,
        ),
    )
)
l.render_notebook()

效果:

4.7 广告平台词云

代码:

w0 = (
    WordCloud()
    .add("",
         ac.most_common(),
         word_size_range=[5, 55])
    .set_global_opts(title_opts=opts.TitleOpts(title="广告平台词云"))
)
w0.render_notebook()


效果:

640.png


如果想要在线运行,可在后台回复 ADX获取链接。

END


以上就是本期为大家整理的全部内容了,赶快练习起来吧,喜欢的朋友可以点赞、点在看也可以分享让更多人知道

相关文章
|
1月前
|
索引 Python
Pandas 高级教程——高级时间序列分析
Pandas 高级教程——高级时间序列分析
101 4
|
6月前
|
SQL 数据可视化 数据挖掘
强大且灵活的Python数据处理和分析库:Pandas
强大且灵活的Python数据处理和分析库:Pandas
328 1
|
1月前
|
Python
Pandas和pyecharts绘制某天多省区连续确诊病例无新增天数的玫瑰图实战(附源码)
Pandas和pyecharts绘制某天多省区连续确诊病例无新增天数的玫瑰图实战(附源码)
86 0
|
8月前
|
存储 数据可视化 数据挖掘
Pandas和Pyecharts带你揭秘最近热播好剧的主题和题材趋势
Pandas和Pyecharts带你揭秘最近热播好剧的主题和题材趋势
|
1月前
|
数据挖掘 索引 Python
如何在Python中,Pandas库实现对数据的时间序列分析?
【4月更文挑战第21天】Pandas在Python中提供了丰富的时间序列分析功能,如创建时间序列`pd.date_range()`,转换为DataFrame,设置时间索引`set_index()`,重采样`resample()`(示例:按月`'M'`和季度`'Q'`),移动窗口计算`rolling()`(如3个月移动平均)以及季节性调整`seasonal_decompose()`。这些工具适用于各种时间序列数据分析任务。
24 2
|
6天前
|
数据采集 存储 数据可视化
Pandas高级教程:数据清洗、转换与分析
Pandas是Python的数据分析库,提供Series和DataFrame数据结构及数据分析工具,便于数据清洗、转换和分析。本教程涵盖Pandas在数据清洗(如缺失值、重复值和异常值处理)、转换(数据类型转换和重塑)和分析(如描述性统计、分组聚合和可视化)的应用。通过学习Pandas,用户能更高效地处理和理解数据,为数据分析任务打下基础。
22 3
|
19天前
|
数据采集 SQL 数据处理
Python中的Pandas库:数据处理与分析的利器
Python中的Pandas库:数据处理与分析的利器
30 0
|
27天前
|
数据采集 数据可视化 数据处理
利用Python和Pandas库实现高效的数据处理与分析
在大数据和人工智能时代,数据处理与分析已成为不可或缺的一环。Python作为一门强大的编程语言,结合Pandas库,为数据科学家和开发者提供了高效、灵活的数据处理工具。本文将介绍Pandas库的基本功能、优势,并通过实际案例展示如何使用Pandas进行数据清洗、转换、聚合等操作,以及如何利用Pandas进行数据可视化,旨在帮助读者深入理解并掌握Pandas在数据处理与分析中的应用。
|
1月前
|
监控 数据挖掘 数据处理
《Pandas 简易速速上手小册》第6章:Pandas 时间序列分析(2024 最新版)
《Pandas 简易速速上手小册》第6章:Pandas 时间序列分析(2024 最新版)
18 1
|
1月前
|
数据采集 数据可视化 数据挖掘
利用Python的Pandas库进行数据清洗和分析
在数据科学和分析领域,数据清洗和分析是至关重要的环节。本文将介绍如何利用Python中强大的Pandas库进行数据清洗和分析。通过Pandas库提供的各种功能和方法,我们可以轻松地加载、清洗、处理和分析各种数据集,为后续的建模和可视化工作打下坚实的基础。