帕累托法则,也称为80/20法则,是由意大利经济学家维尔弗雷多·帕累托提出的。它指出在许多情况下,大约80%的效益来自于20%的原因。这个原则在很多领域都有应用,包括商业、经济、社会问题等。
在数据分析中,帕累托法则可以用来识别和专注于最具影响力的因素。以下是帕累托分析的基本步骤:
数据收集:首先,收集相关数据,确定你的分析目标。
数据排序:将数据按照某个特定的标准(如销售额、成本、频率等)进行排序。
计算总和:计算所有项目的总和。
确定累积百分比:对于每个项目,计算累积百分比。这可以通过将每个项目的值除以总和,然后乘以100来实现。
识别关键因素:识别累积百分比达到80%的那些关键因素(原因)。这通常意味着这些因素是最重要的贡献者。
分析和决策:根据帕累托分析的结果,分析关键因素对整体效益的影响,并做出相应的决策
任务:计算下面Excel表格中用活用户的贡献度
在deepseek中输入提示词:
你是一个Python编程专家,要完成一个Python脚本编写的任务,具体步骤如下:
读取Excel文件"F:\AI自媒体内容\AI行业数据分析\poetop50bots中文翻译.xlsx",
用matplotlib绘制一个柱状图:
从A列“热门bot名称”中提取数据作为标签,用于X轴;
从E列“月活用户占比”中提取数据作为大小,用于Y轴;
设置图表的标题为“Poe平台前50个bots月活用户贡献度分析”;
在相同的图表上绘制累积比例曲线,颜色为红色,使用次y轴,次y轴的刻度是从0到1,中间间隔0.1,数据来自于E列,在累积比例曲线上要显示累积比例的数值;
设置matplotlib默认字体为'SimHei',文件路径为:C:\Windows\Fonts\simhei.ttf
保存图片到文件夹“F:\AI自媒体内容\AI行业数据分析”,图片标题为:poetop50bots贡献度;
显示图片;
注意:每一步都输出信息到屏幕
源代码:
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import font_manager
# 设置matplotlib默认字体
font_path = r'C:\Windows\Fonts\simhei.ttf'
font_prop = font_manager.FontProperties(fname=font_path)
plt.rcParams['font.family'] = 'SimHei'
# 读取Excel文件
file_path = r'F:\AI自媒体内容\AI行业数据分析\poetop50bots中文翻译.xlsx'
df = pd.read_excel(file_path)
# 提取数据
labels = df['热门bot名称']
sizes = df['月活用户占比']
# 计算累积比例
cumulative_sizes = sizes.cumsum() / sizes.sum()
# 绘制柱状图
fig, ax1 = plt.subplots()
ax1.bar(labels, sizes, color='b')
ax1.set_xlabel('热门bot名称')
ax1.set_ylabel('月活用户占比', color='b')
ax1.tick_params(axis='y', labelcolor='b')
# 设置次y轴
ax2 = ax1.twinx()
ax2.plot(labels, cumulative_sizes, color='r')
ax2.set_ylim(0, 1)
ax2.set_yticks([i / 10 for i in range(0, 11)])
ax2.set_ylabel('累积比例', color='r')
ax2.tick_params(axis='y', labelcolor='r')
# 在累积比例曲线上添加文本注释
for i, (label, cumulative_size) in enumerate(zip(labels, cumulative_sizes)):
ax2.annotate(f'{cumulative_size:.2f}', (label, cumulative_size), textcoords="offset points", xytext=(0,10), ha='center')
# 设置图表标题
plt.title('Poe平台前50个bots月活用户贡献度分析')
# 保存图片
image_path = r'F:\AI自媒体内容\AI行业数据分析\poetop50bots贡献度.png'
plt.savefig(image_path)
# 显示图片
plt.show()
print("图表绘制完成,图片已保存到:", image_path)