摘要:在职场里,有个隐形竞争力叫“用数据做决策”。小到便利店选品的利润测算,大到公司百万级项目的投资分析,懂经济评估的人总能快速抓住关键,但多数人还在被Excel折磨:改一个数要手动刷新十几列公式,画个对比图要调半小时格式,最后出的报告还总被领导问“数据依据在哪”。
在职场里,有个隐形竞争力叫“用数据做决策”。小到便利店选品的利润测算,大到公司百万级项目的投资分析,懂经济评估的人总能快速抓住关键,但多数人还在被Excel折磨:改一个数要手动刷新十几列公式,画个对比图要调半小时格式,最后出的报告还总被领导问“数据依据在哪”。
其实,Python才是经济评估的“效率神器”——自动算指标、批量出图表、一键生成分析报告,甚至能帮你预判风险。今天这篇教程,从环境搭建到3个高频率实战案例,全程“代码+解读”保姆级教学,哪怕你是零基础,跟着复制粘贴也能搞定,学会直接用在工作汇报里!
做经济评估不用学复杂编程,掌握3个核心库就够了。先花3分钟把环境搭好,已装Python的直接跳第二步。
1. 装Python:官网1步搞定
打开Python官网,选3.8以上版本(兼容性最好),安装时务必勾选“Add Python to PATH”(避免后续配置路径),一路点“Next”,1分钟就能装完。
2. 装3个核心库:复制命令就行
按下Win+R(Mac按Command+空格),输入“cmd”打开命令提示符,粘贴以下3行命令,每输完一行按回车(出现“Successfully installed”就是成功):
• pip install pandas:处理表格数据,比Excel快10倍
• pip install numpy:算经济指标(如净现值、回报率),零计算错误
• pip install matplotlib:生成可视化图表,让数据更直观
3. 选编辑器:优先用Jupyter Notebook
新手推荐用Jupyter Notebook,能边写代码边看结果,还能插文字说明,像“带代码的Word”。安装命令:pip install jupyter,装完后输入jupyter notebook,会自动弹出浏览器页面,点“New-Python 3”就能开始。
便利店老板常纠结:“可乐和果汁该重点推哪个?”靠感觉说“可乐卖得多”没用,用Python算清“单位利润、周转率、保本销量”,答案一目了然。
1. 明确评估逻辑
核心看3个指标:
• 单位利润=售价-进货成本-损耗成本(按售价10%估算)
• 月周转率=月销量/进货量(越高说明卖得越快)
• 保本销量=月固定成本(如货架费)÷单位利润(卖够这个数才不亏)
2. 准备数据(真实场景模拟)
假设两款饮品的基础数据如下,Python会自动读取,不用手动输:
商品 售价(元) 进货成本(元) 月销量(瓶) 月进货量(瓶) 月货架费(元)
可乐 3.5 1.8 1200 1500 200
果汁 5 2.5 800 1000 200
3. Python代码实战(复制就能用)
第一步:导入库+读数据
# 导入核心库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 解决中文乱码
plt.rcparams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 输入数据(也能用水印读取Excel:pd.read_excel("选品数据.xlsx"))
data = {
'商品': ['可乐', '果汁'],
'售价': [3.5, 5],
'进货成本': [1.8, 2.5],
'月销量': [1200, 800],
'月进货量': [1500, 1000],
'月货架费': [200, 200]
}
# 转成表格格式
df = pd.DataFrame(data)
print("选品基础数据:")
print(df)
运行后会显示表格,确认数据没写错。
第二步:算核心指标
# 1. 算单位利润(损耗按售价10%算)
df['损耗成本'] = df['售价'] * 0.1
df['单位利润'] = df['售价'] - df['进货成本'] - df['损耗成本']
# 2. 算月周转率(销量/进货量,越高越好)
df['月周转率'] = (df['月销量'] / df['月进货量']).round(2)
# 3. 算保本销量(卖够多少才不亏)
df['保本销量'] = df['月货架费'] / df['单位利润']
# 4. 算月净利润
df['月净利润'] = df['月销量'] * df['单位利润'] - df['月货架费']
# 显示结果
print("\n选品评估结果:")
print(df[['商品', '单位利润', '月周转率', '保本销量', '月净利润']].round(2))
运行结果解读:
• 可乐:单位利润1.35元,周转率0.8(卖得快),保本卖149瓶就能回本,月净利润1420元
• 果汁:单位利润2元,周转率0.8,但保本要卖100瓶,月净利润1400元
看似果汁单位利润高,实际可乐总利润更高,该重点推可乐!
第三步:画对比图(汇报用)
# 画柱状图对比利润和保本销量
x = df['商品']
fig, ax1 = plt.subplots(figsize=(10, 6))
# 左轴:月净利润
ax1.bar(x, df['月净利润'], color='#FF9999', label='月净利润(元)', alpha=0.8)
ax1.set_ylabel('月净利润(元)', color='#FF9999', fontsize=12)
ax1.tick_params(axis='y', labelcolor='#FF9999')
# 右轴:保本销量
ax2 = ax1.twinx
ax2.plot(x, df['保本销量'], color='#66B2FF', marker='o', linewidth=3, label='保本销量(瓶)')
ax2.set_ylabel('保本销量(瓶)', color='#66B2FF', fontsize=12)
ax2.tick_params(axis='y', labelcolor='#66B2FF')
# 加数值标签
for i, v in enumerate(df['月净利润']):
ax1.text(i, v + 50, f'{int(v)}元', ha='center', va='bottom', fontsize=10)
for i, v in enumerate(df['保本销量']):
ax2.text(i, v + 10, f'{int(v)}瓶', ha='center', va='bottom', fontsize=10)
# 标题和图例
plt.title('便利店饮品选品对比', fontsize=14, fontweight='bold')
lines1, labels1 = ax1.get_legend_handles_labels
lines2, labels2 = ax2.get_legend_handles_labels
ax1.legend(lines1 + lines2, labels1 + labels2, loc='upper right')
# 保存图片(和代码放同一文件夹)
plt.savefig('选品对比图.png', dpi=300)
plt.show
生成的图既有利润又有保本量,汇报时一放,领导秒懂你的分析逻辑。
公司要投一个新能源项目,初始投500万,周期5年,怎么判断值不值?关键看“净现值(NPV)”:把未来的钱折算成现在的钱,正数就值得投,负数就放弃。
1. 基础数据(真实项目模拟)
• 初始投资:-500万元(负号代表支出)
• 未来5年现金流(净利润+折旧):120万、150万、180万、200万、220万
• 折现率:8%(行业平均收益,可调整)
2. Python代码实战
# 导入库
import numpy as np
import matplotlib.pyplot as plt
# 解决中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
# 1. 定义数据
initial_invest = -500 # 初始投资
cash_flows = [initial_invest, 120, 150, 180, 200, 220] # 第0-5年现金流
discount_rate = 0.08 # 折现率8%
years = np.arange(0, 6) # 时间轴:0-5年
# 2. 算核心指标
npv = np.npv(discount_rate, cash_flows) # 净现值(正数值得投)
irr = np.IRR(cash_flows) # 内部收益率(越高越好)
cumulative_cf = np.cumsum(cash_flows) # 累计现金流(看何时回本)
# 输出结果
print(f"项目初始投资:{abs(initial_invest)}万元")
print(f"净现值(NPV):{npv:.2f}万元")
print(f"内部收益率(IRR):{irr:.2%}")
print("\n各年现金流及累计现金流:")
for year, cf, cum_cf in zip(years, cash_flows, cumulative_cf):
print(f"第{year}年:现金流={cf}万,累计现金流={cum_cf:.2f}万")
结果解读:
• NPV=198.76万元(正数):项目能赚钱,值得投
• IRR=23.58%(远高于8%行业水平):收益超预期
• 累计现金流第4年转正:4年就能回本,风险低
3. 画现金流趋势图
# 画现金流和累计现金流图
fig, ax = plt.subplots(figsize=(12, 6))
# 柱状图:当年现金流
ax.bar(years, cash_flows, color='#99CCFF', label='当年现金流(万元)', alpha=0.8)
# 折线图:累计现金流
ax.plot(years, cumulative_cf, color='#FF6666', linewidth=3, marker='o', label='累计现金流(万元)')
# 加盈亏线(y=0)
ax.axhline(y=0, color='black', linestyle='--', alpha=0.5, label='盈亏线')
# 加数值标签
for year, cf, cum_cf in zip(years, cash_flows, cumulative_cf):
ax.text(year, cf + 20, f'{cf}万', ha='center', va='bottom', fontsize=9)
ax.text(year, cum_cf + 20, f'{cum_cf:.0f}万', ha='center', va='bottom', fontsize=9)
# 标题和图例
ax.set_title('新能源项目5年现金流趋势', fontsize=14, fontweight='bold')
ax.set_xlabel('年份', fontsize=12)
ax.set_ylabel('现金流(万元)', fontsize=12)
ax.legend
ax.grid(True, alpha=0.3)
# 保存图片
plt.savefig('项目现金流图.png', dpi=300)
plt.show
图里红色折线过了0轴,就是回本时间,直观又专业,比写100字报告还管用。
很多商家定价凭感觉:“别人卖100,我卖99”,但定价高了销量降,低了没利润。用Python模拟不同定价的利润,能精准找到“最优价”。
1. 核心逻辑
假设某产品:
• 销量公式:销量=2000-10×定价(定价涨1元,销量少10件)
• 单位成本:30元/件
• 定价范围:40-120元(每5元一个档位)
2. Python代码实战
# 导入库
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# 解决中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
# 1. 定义参数
unit_cost = 30 # 单位成本
price_range = np.arange(40, 121, 5) # 定价范围:40-120元,步长5元
profit_list = # 存不同定价的利润
sales_list = # 存不同定价的销量
# 2. 算每个定价的利润
for price in price_range:
sales = 2000 - 10 * price # 算销量
revenue = price * sales # 算销售额
total_cost = unit_cost * sales # 算总成本
profit = revenue - total_cost # 算利润
sales_list.append(sales)
profit_list.append(profit)
# 3. 找最优定价
result = pd.DataFrame({
'定价(元)': price_range,
'销量(件)': sales_list,
'利润(元)': profit_list
})
max_profit_idx = result['利润(元)'].idxmax
best_price = result.iloc[max_profit_idx]
# 输出结果
print("不同定价利润模拟:")
print(result)
print(f"\n最优定价方案:")
print(f"定价:{best_price['定价(元)']}元,销量:{best_price['销量(件)']}件,利润:{best_price['利润(元)']}元")
结果显示:最优定价是115元,利润72250元;如果错定100元,利润只有50000元,少赚2.2万!
3. 画定价-利润趋势图
# 画定价-利润趋势图
fig, ax = plt.subplots(figsize=(12, 6))
# 画利润趋势线
ax.plot(result['定价(元)'], result['利润(元)'], color='#FF6600', linewidth=3, marker='o', label='利润')
# 标记最优定价点
ax.scatter(best_price['定价(元)'], best_price['利润(元)'], color='red', s=150, zorder=5)
ax.text(best_price['定价(元)'] + 2, best_price['利润(元)'] + 2000,
f'最优价:{best_price["定价(元)"]}元\n利润:{best_price["利润(元)"]}元',
bbox=dict(boxstyle='round', facecolor='yellow', alpha=0.8), fontsize=10)
# 标题和标签
ax.set_title('产品定价与利润关系', fontsize=14, fontweight='bold')
ax.set_xlabel('定价(元)', fontsize=12)
ax.set_ylabel('利润(元)', fontsize=12)
ax.grid(True, alpha=0.3)
ax.legend
# 保存图片
plt.savefig('定价利润图.png', dpi=300)
plt.show
1. 数据格式要统一:比如“金额”都用“元”,“时间”都用“年/月”,避免Python计算时出错;
2. 公式别硬记:本文案例的“利润”“NPV”公式都已写好,直接替换成你的数据就能用;其实Python做经济评估,核心不是“会编程”,而是“用工具解决问题”。今天这3个案例,覆盖了零售、投资、定价最常见的场景,学会后不管是做汇报、写方案,还是帮公司做决策,你都能比别人快一步。下次再遇到“该选哪个”“值不值得投”的问题,别再凭感觉,用Python跑一遍数据,答案自然就出来了!#每天学python##经济管理##经济分析#粤明年重点项目投资计划#
来源:绿叶菜