这段代码实现了一个名为'help_cal'的函数,用于计算两个数的商。如果除数'b'大于 0,则返回被除数'a'除以'b'的结果,否则返回 0。

def help_cal(a, b):
    if b > 0:
        return a / b
    else:
        return 0

接下来,代码对一个数据框'df'进行操作,使用'apply'函数和'lambda'表达式,计算出'df'中每个用户的 PVP 和 PVE 胜率,并将它们分别赋给'df'的'pvp_win_ratio'和'pve_win_ratio'列。

# 图 5 用户胜率
df['pvp_win_ratio'] = df.apply(lambda x: help_cal(x['pvp_win_count'], x['pvp_battle_count']), axis=1)
df['pve_win_ratio'] = df.apply(lambda x: help_cal(x['pve_win_count'], x['pve_battle_count']), axis=1)
print(df)

然后,代码使用'resample'函数将数据按天进行聚合,并计算 PVP 和 PVE 用户的平均日胜率,将它们分别赋给'd5_1'和'd5_2'。接着,代码打印出这两个平均日胜率。

d5_1 = df.resample('D').sum()['pvp_win_ratio']
d5_2 = df.resample('D').sum()['pve_win_ratio']
# PVP 用户平均日胜率
print(d5_1)
# PVE 用户平均日胜率
print(d5_1)

接下来,代码将'd5_1'和'd5_2'中的索引赋给列表'l1'。然后,代码分别将'd5_1'和'd5_2'中的值转化为列表,并赋给'l2_1'和'l2_2'。接着,代码使用'Bar'类创建一个柱状图,并将'l1'作为 x 轴的坐标,'l2_1'和'l2_2'分别作为 PVP 和 PVE 胜率的 y 轴坐标。柱状图的全局选项包括标题和工具栏选项,并将其保存为一个 HTML 文件。

l1 = []
for d in d5_1.index:
    l1.append(d)

l2_1 = d5_1.to_list()
l2_2 = d5_2.to_list()
bar = (
    Bar()
    .add_xaxis(l1)
    .add_yaxis('PVP胜率', [round(x / df.shape[0], 3) for x in l2_1])
    .add_yaxis('PVE胜率', [round(x / df.shape[0], 3) for x in l2_2])
    .set_global_opts(title_opts=opts.TitleOpts(title='用户平均日胜率'),
                     toolbox_opts=opts.BrushOpts(), )
    .render('图 5 用户平均日胜率 2.html')
)

这段代码展示了如何使用 Python 进行数据分析和图表可视化,具体包括函数定义、数据框操作、数据聚合以及使用 Echarts 库生成柱状图展示用户平均日胜率。通过学习这段代码,你可以了解到 Python 如何有效地处理数据并生成直观的图表。

Python 代码详解:用户胜率统计与图表展示

原文地址: https://www.cveoy.top/t/topic/oHbX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录