2026/4/16 21:34:24
网站建设
项目流程
服装公司网站定位,国内室内设计,单页推广网站模版,济南 网站设计公司设计一个 基于 Python 的客户成交周期分析与优化程序#xff0c;满足你的要求。1. 实际应用场景描述场景#xff1a;你是一家 SaaS 公司的销售负责人#xff0c;团队每天与客户进行接洽、演示、谈判、签约等环节。你需要了解#xff1a;- 每个客户的成交周期#xff08;从…设计一个 基于 Python 的客户成交周期分析与优化程序满足你的要求。1. 实际应用场景描述场景你是一家 SaaS 公司的销售负责人团队每天与客户进行接洽、演示、谈判、签约等环节。你需要了解- 每个客户的成交周期从首次接触到签约的时间- 不同阶段接洽、需求确认、报价、谈判、签约的耗时占比- 哪些阶段耗时过长影响整体效率痛点- 手工记录成交周期耗时且易出错- 难以快速统计平均成交时长- 无法直观看到各阶段耗时占比- 缺乏数据驱动的流程优化依据解决方案开发一个 客户成交周期分析工具支持录入客户各阶段时间节点自动计算总周期、平均周期、阶段耗时占比并生成可视化报告帮助优化销售流程。2. 核心逻辑讲解1. 数据录入- 客户名称- 各阶段日期接洽、需求确认、报价、谈判、签约2. 周期计算- 总周期 签约日期 - 接洽日期- 各阶段耗时 下一阶段日期 - 当前阶段日期3. 统计分析- 平均成交周期- 各阶段平均耗时- 阶段耗时占比百分比4. 数据存储- SQLite 本地数据库5. 可视化报告- 使用matplotlib 绘制饼图展示阶段占比6. CLI 交互- 命令行录入与查询3. 代码模块化实现目录结构sales_cycle_analyzer/├── main.py├── database.py├── analyzer.py├── visualizer.py└── README.mddatabase.py - 数据库操作import sqlite3from datetime import datetimeDB_NAME sales_cycle.dbdef init_db():conn sqlite3.connect(DB_NAME)c conn.cursor()c.execute(CREATE TABLE IF NOT EXISTS clients(id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,contact_date TEXT,requirement_date TEXT,quote_date TEXT,negotiation_date TEXT,sign_date TEXT))conn.commit()conn.close()def add_client(data):conn sqlite3.connect(DB_NAME)c conn.cursor()c.execute(INSERT INTO clients(name, contact_date, requirement_date, quote_date, negotiation_date, sign_date)VALUES (?, ?, ?, ?, ?, ?), data)conn.commit()conn.close()def get_all_clients():conn sqlite3.connect(DB_NAME)c conn.cursor()c.execute(SELECT * FROM clients)rows c.fetchall()conn.close()return rowsanalyzer.py - 数据分析from datetime import datetimedef parse_date(date_str):return datetime.strptime(date_str, %Y-%m-%d)def analyze_clients(clients):total_cycles []stage_durations {接洽: [], 需求确认: [], 报价: [], 谈判: [], 签约: []}for client in clients:name, contact, req, quote, nego, sign client[1:]dates [parse_date(d) for d in [contact, req, quote, nego, sign]]# 总周期total_days (dates[4] - dates[0]).daystotal_cycles.append(total_days)# 各阶段耗时stages [(接洽, dates[0], dates[1]),(需求确认, dates[1], dates[2]),(报价, dates[2], dates[3]),(谈判, dates[3], dates[4])]for stage_name, start, end in stages:days (end - start).daysstage_durations[stage_name].append(days)avg_total sum(total_cycles) / len(total_cycles) if total_cycles else 0avg_stages {k: sum(v) / len(v) if v else 0 for k, v in stage_durations.items()}return avg_total, avg_stages, stage_durationsvisualizer.py - 可视化import matplotlib.pyplot as pltdef plot_stage_ratio(avg_stages):labels avg_stages.keys()sizes list(avg_stages.values())plt.figure(figsize(8, 6))plt.pie(sizes, labelslabels, autopct%1.1f%%, startangle140)plt.title(各阶段平均耗时占比)plt.show()main.py - 主程序from database import init_db, add_client, get_all_clientsfrom analyzer import analyze_clientsfrom visualizer import plot_stage_ratiodef input_date(prompt):while True:date_str input(prompt (YYYY-MM-DD): )try:datetime.strptime(date_str, %Y-%m-%d)return date_strexcept ValueError:print(日期格式错误请重新输入)def main():init_db()while True:print(\n1. 添加客户记录\n2. 分析所有客户\n3. 退出)choice input(选择操作: )if choice 1:name input(客户名称: )contact input_date(接洽日期)req input_date(需求确认日期)quote input_date(报价日期)nego input_date(谈判日期)sign input_date(签约日期)add_client((name, contact, req, quote, nego, sign))print(客户记录已添加)elif choice 2:clients get_all_clients()if not clients:print(暂无数据)continueavg_total, avg_stages, _ analyze_clients(clients)print(f\n平均成交周期: {avg_total:.1f} 天)print(各阶段平均耗时:)for stage, days in avg_stages.items():print(f {stage}: {days:.1f} 天)plot_stage_ratio(avg_stages)elif choice 3:breakelse:print(无效选择)if __name__ __main__:main()4. README.md# 客户成交周期分析器 Sales Cycle Analyzer一个基于 Python 的销售流程分析工具支持录入客户各阶段时间节点自动计算成交周期与阶段耗时占比并生成可视化报告。## 功能- 录入客户成交各阶段日期- 自动计算总周期与阶段耗时- 统计平均周期与阶段占比- 饼图可视化## 安装依赖bashpip install matplotlib## 使用bashpython main.py## 数据表结构- name: 客户名称- contact_date: 接洽日期- requirement_date: 需求确认日期- quote_date: 报价日期- negotiation_date: 谈判日期- sign_date: 签约日期5. 使用说明1. 安装依赖matplotlib2. 运行main.py3. 选择1 添加客户各阶段日期4. 选择2 查看平均周期、阶段耗时及饼图5. 根据分析结果优化销售流程6. 核心知识点卡片知识点 说明SQLite 轻量级数据库适合本地存储结构化数据datetime Python 标准库处理日期与时间计算matplotlib 数据可视化库绘制饼图等图表模块化设计 分离数据库、分析、可视化逻辑便于维护数据驱动决策 用统计数据发现流程瓶颈7. 总结本项目通过 数据录入 → 周期计算 → 统计分析 → 可视化 的流程实现了销售成交周期的自动化分析帮助团队- 明确平均成交时长- 发现耗时长的阶段- 制定针对性优化措施后续可扩展- 增加 Web 界面Flask/Django- 支持导入 Excel 数据- 添加阶段备注与原因分析- 多用户权限管理如果你需要还可以为增加一个 Web 版本让销售团队可以在浏览器中直接录入和分析数据并且可以导出 PDF 报告。利用AI高效解决实际问题如果你觉得这个工具好用欢迎关注我