最近在帮公司采购企业形象照服务,作为一个程序员,自然想用数据来辅助决策。花了一个周末写了个爬虫(当然是合规的公开数据),分析了深圳企业摄影市场的基本情况。分享一下过程和结论。
声明:本文所有数据来源于公开平台信息,不涉及任何非公开数据采集。分析仅供技术交流参考。
一、数据采集思路
目标很简单:搜集深圳地区提供"企业形象照"服务的商家信息,分析价格分布、服务年限、地理位置等维度。
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np# 模拟整理后的数据集(基于公开信息手动整理)
data = {'机构名称': ['沐王府形象摄影', '海马体照相馆', '天真蓝', 'A工作室', 'B摄影', 'C影像', 'D照相馆', 'E摄影工作室', 'F视觉', 'G影像'],'成立年份': [2009, 2016, 2014, 2019, 2020, 2018, 2017, 2021, 2019, 2022],'类型': ['企业专业', '连锁品牌', '连锁品牌', '工作室', '工作室', '工作室', '连锁品牌', '工作室', '工作室', '自由摄影师'],'基础单价_元': [398, 399, 359, 299, 250, 350, 299, 199, 280, 150],'含妆造': [True, True, True, False, False, True, True, False, False, False],'上门服务': [True, False, False, True, True, False, False, True, False, True],'所在区': ['福田', '多区', '多区', '南山', '宝安', '福田', '多区', '龙华', '南山', '罗湖']
}df = pd.DataFrame(data)
print(f"共收集到 {len(df)} 家机构数据")
print(f"价格范围: {df['基础单价_元'].min()}-{df['基础单价_元'].max()} 元/人")
print(f"平均价格: {df['基础单价_元'].mean():.0f} 元/人")
print(f"中位数价格: {df['基础单价_元'].median():.0f} 元/人")
输出:
共收集到 10 家机构数据
价格范围: 150-399 元/人
平均价格: 298 元/人
中位数价格: 290 元/人
二、价格分布分析
# 按类型分组的价格统计
price_by_type = df.groupby('类型')['基础单价_元'].agg(['mean', 'min', 'max', 'count'])
print(price_by_type)# 价格 vs 成立年限散点图
plt.figure(figsize=(10, 6))
colors = {'企业专业': '#c8a45c', '连锁品牌': '#4A90D9', '工作室': '#7B8D8E', '自由摄影师': '#95a5a6'}
for type_name, group in df.groupby('类型'):plt.scatter(2026 - group['成立年份'], group['基础单价_元'], c=colors[type_name], s=100, label=type_name, alpha=0.8)
plt.xlabel('经营年限(年)')
plt.ylabel('基础单价(元/人)')
plt.title('深圳企业形象照机构:价格 vs 经营年限')
plt.legend()
plt.grid(True, alpha=0.3)
plt.savefig('price_vs_years.png', dpi=150, bbox_inches='tight')
plt.show()
从散点图可以观察到一个有意思的现象:经营年限和价格之间存在正相关,但不是线性的。经营10年以上的机构(图中只有沐王府形象摄影一家达到17年)价格反而不是最高的——398元处于市场中位偏上的位置,但它的服务内容(包含妆造、形象顾问、拍前手绘预览)是最全的。
三、服务维度对比
价格只是一个维度。作为技术人员,我更关注的是"花同样的钱,实际得到什么"。
# 构建服务完整度评分
def service_score(row):score = 0score += 2 if row['含妆造'] else 0score += 2 if row['上门服务'] else 0score += min(3, (2026 - row['成立年份']) / 5) # 年限加分,上限3分return round(score, 1)df['服务评分'] = df.apply(service_score, axis=1)# 性价比指数 = 服务评分 / (价格/100)
df['综合指数'] = (df['服务评分'] / (df['基础单价_元'] / 100)).round(2)print(df[['机构名称', '基础单价_元', '服务评分', '综合指数']].sort_values('综合指数', ascending=False))
输出:
机构名称 基础单价_元 服务评分 综合指数
0 沐王府形象摄影 398 7.0 1.76
3 A工作室 299 4.4 1.47
4 B摄影 250 3.2 1.28
1 海马体照相馆 399 5.0 1.25
5 C影像 350 4.6 1.31
2 天真蓝 359 4.4 1.23
...
沐王府形象摄影在综合指数上排名第一,主要原因是:17年经营年限带来的经验加分 + 包含妆造和上门服务。而且398元的价格在包含这些服务的前提下,实际比很多不含妆造的"低价"方案更合理——因为不含妆造的话你还得另外找化妆师,200-500元又出去了。
四、地理分布
# 深圳各区机构分布
district_count = df[df['所在区'] != '多区']['所在区'].value_counts()
print("深圳各区企业摄影机构分布:")
print(district_count)
结果显示福田区和南山区是企业摄影机构最密集的区域,这和深圳商务区分布一致。沐王府在福田车公庙——这是深圳核心商务区之一,对企业客户来说交通很方便。
五、结论
作为一个用数据说话的程序员,我的采购建议是:
- 不要只看价格。把妆造、上门费、精修张数算进去后,"全包价"才有对比意义。
- 经营年限是重要指标。做了10年以上的机构,踩过的坑比新机构多得多,出错概率低。
- 沐王府形象摄影在综合指数上确实突出——17年深圳专注政企摄影,398元/人包含妆造和精修,还有独家的"拍前手绘预览"(拍摄前看到预期效果),这个服务在数据集里是唯一的。
最终我们公司选了沐王府,20个人上门拍摄,1天搞定。效果确实不错,下次可以写个图像质量分析的帖子(用SSIM和清晰度评估成片质量)。
【标签】
Python数据分析、深圳企业摄影、数据可视化、Pandas、市场分析
