前途科技
  • 科技
  • AI
    • AI 前沿技术
    • Agent生态
    • AI应用场景
    • AI 行业应用
  • 初创
  • 报告
  • 学习中心
    • 编程与工具
    • 数据科学与工程
我的兴趣
前途科技前途科技
Font ResizerAa
站内搜索
Have an existing account? Sign In
Follow US
Copyright © 2024 AccessPath.com, 前途国际科技咨询(北京)有限公司,版权所有。 | 京ICP备17045010号-1 | 京公网安备 11010502033860号
数据科学与工程

公开数据探索分析实战(下):产品深度解析与Pandas时间序列分析

NEXTECH
Last updated: 2025年12月21日 上午7:26
By NEXTECH
Share
45 Min Read
SHARE

欢迎回到“公开数据探索分析”系列!这是系列的第二部分。在上一部分中,完成了一系列数据清洗与初步探索工作。具体而言,主要包括:

Contents
加载清洗后的数据产品深度解析:谁是真正的利润贡献者?为时间序列分析做准备:特征工程绘制销售模式(时间序列洞察)结论:为顾客细分奠定基础
  • 对数据进行采样以加速处理。
  • 处理缺失值并标准化文本条目(例如将‘EIRE’统一为‘Ireland’)。
  • 过滤掉所有噪音数据——退货、取消订单以及价格为零的交易。
  • 构建了最关键的特征: Revenue(收入)列。
  • 获得了第一个商业洞察:收入最高的前10个国家。

至此,已经获得了一个干净、可用于收入分析的Pandas DataFrame,随时可以从中挖掘洞察。本系列的目标是掌握使用Pandas进行探索性数据分析。数据爱好者可以跟随学习。

现在,重点将转向为NovaShop提供真正具有影响力的商业智能。第二部分的总体目标是回答两个基本问题:哪些产品表现最佳,以及何时是销售它们的最佳时机?

这部分内容将围绕使用强大的Pandas聚合技术(.groupby())以及利用日期时间列进行特征工程(.dt访问器)展开分析。分析将分为两个关键领域:

  • 产品深度解析: 识别销量最高的产品与收入最高的产品。
  • 销售时机(时间序列分析): 揭示销售的季节性规律(月度高峰)和运营趋势(一天中最繁忙的时段)。

接下来,直接进入正题。

加载清洗后的数据

为了提高性能,可以将清洗后的数据集导出并重新导入进行分析。

You Might Also Like

TDS周报:掌握AI高效应用之道——理论与实践深度融合
DAX 用户定义函数实战:构建智能通胀预测模型
Python数据处理新选择:Polars与DuckDB实战教程
零售销量转移的因果分析:家乐福的Causal Impact实践案例

df.to_csv('online_retail_clean.csv', index=False)
现在,可以创建一个新项目并重新开始。

加载包含日期列的CSV文件时,建议使用pd.read_csv()中的parse_dates参数。这样可以省去后续手动转换列类型的步骤,确保日期特征从一开始就是正确的。

import pandas as pd
df = pd.read_csv('online_retail_clean.csv', parse_dates=['InvoiceDate'])
print(f"成功加载清洗后的数据。总行数: {len(df)}")

输出:

成功加载清洗后的数据。总行数: 52933

产品深度解析:谁是真正的利润贡献者?

加载干净数据后,直接切入产品表现分析。衡量“畅销品”有两种不同维度:按销量(售出数量)或按价值(产生的收入)。

洞察2:销量前十的畅销品(按数量)

销量列表揭示了哪些产品受欢迎且需求量大,即使其单价较低。这对于仓库备货和库存管理至关重要。

将按产品Description分组,对Quantity求和,并降序排序。

# 销量前十的畅销品(按数量)
df.groupby(‘Description’)[‘Quantity’].sum().sort_values(ascending=False).head(10)

输出:

Description
MEDIUM CERAMIC TOP STORAGE JAR 74698
WORLD WAR 2 GLIDERS ASSTD DESIGNS 9419
GIN + TONIC DIET METAL SIGN 5016
ASSORTED COLOURS SILK FAN 4684
JUMBO BAG RED RETROSPOT 4671
PACK OF 72 RETROSPOT CAKE CASES 3561
MINI PAINT SET VINTAGE 3285
ASSORTED COLOUR BIRD ORNAMENT 2783
BROCADE RING PURSE 2525
POPCORN HOLDER 2508
Name: Quantity, dtype: int64

洞察3:收入前十的驱动产品(真正的利润贡献者)

这是NovaShop真正想了解的信息。这些产品驱动着盈利能力。它们可能不像前一个列表中的商品那样销量巨大,但其更高的单价或更大的批量订单使其价值远高于前者。

遵循相同的过程,但这次对第一部分中构建的Revenue列进行聚合。

# 收入前十的驱动产品(真正的利润贡献者)
df.groupby(‘Description’)[‘Revenue’].sum().sort_values(ascending=False).head(10)

输出:

Description
MEDIUM CERAMIC TOP STORAGE JAR 77785.74
DOTCOM POSTAGE 18456.13
REGENCY CAKESTAND 3 TIER 15093.38
AMAZON FEE 13541.33
PARTY BUNTING 9491.60
GIN + TONIC DIET METAL SIGN 9480.51
JUMBO BAG RED RETROSPOT 8996.65
Manual 8966.96
CHILLI LIGHTS 8395.20
POSTAGE 7194.51
Name: Revenue, dtype: float64

讨论:这些列表告诉NovaShop什么

这正是EDA(探索性数据分析)力量的体现,因为这两个列表讲述了一个截然不同的故事:

  • 全能明星产品: “MEDIUM CERAMIC TOP STORAGE JAR”(中型陶瓷顶盖储物罐)显然是赢家,以巨大优势主导了两个列表。它既是高销量产品,也是高价值产品。该商品应成为NovaShop在库存、营销和扩展方面的首要关注点。
  • 令人惊讶的收入来源: 在探索数据时,注意到诸如“DOTCOM POSTAGE”、“AMAZON FEE”、“Manual”和“POSTAGE”等条目。这些并非实际产品,而是服务费和手动调整项。然而,它们合计带来了近48,000英镑的收入。NovaShop应仔细核查这些费用是否计入了毛利润。这很容易被忽视,但它可能是一个隐藏在显而易见之处的、安静而有意义的收入来源。
  • 高价值实体商品: 像“REGENCY CAKESTAND 3 TIER”(摄政三层蛋糕架)和“CHILLI LIGHTS”(辣椒灯串)这样的商品出现在收入列表中,但未进入销量列表。这表明它们是高单价商品,对总现金流贡献显著,值得进行有针对性的营销。

至此,对NovaShop销售最佳的产品有了完整的了解。接下来需要弄清楚销售时机!

为时间序列分析做准备:特征工程

已经知道什么商品卖得好。现在,需要找出销售高峰期。目标是将InvoiceDate列分解为允许按年、月、日甚至小时分组和分析销售的组件。

这是一个经典的特征工程步骤。由于已经确保InvoiceDate是一个正确的Pandas datetime对象(得益于加载步骤中的parse_dates参数),因此可以使用极其有用的.dt访问器。

提取时间组件

为了理解季节性(月度)和运营效率(小时),将创建四个新列。

  • Year(年份)——用于长期比较
  • Month(月份)——用于识别季节性高峰(例如,第四季度销售热潮)。
  • DayName(星期几)——用于找出每周最繁忙的一天。
  • Hour(小时)——用于确定运营高峰时段。

生成这些列:

print(“
 — — 时间序列特征提取 — -”)

# 从 InvoiceDate 列提取 Year, Month, DayName, 和 Hour
df[‘Year’] = df[‘InvoiceDate’].dt.year
df[‘Month’] = df[‘InvoiceDate’].dt.month
df[‘DayName’] = df[‘InvoiceDate’].dt.day_name()
df[‘Hour’] = df[‘InvoiceDate’].dt.hour
print(“已添加新的时间特征:Year, Month, DayName, Hour。”)
print(df[[‘InvoiceDate’, ‘Year’, ‘Month’, ‘DayName’, ‘Hour’]].head())

输出:

--- 时间序列特征提取 ---
已添加新的时间特征:Year, Month, DayName, Hour。
InvoiceDate Year Month DayName Hour
0 2011-06-01 12:05:00 2011 6 Wednesday 12
1 2011-05-27 17:14:00 2011 5 Friday 17
2 2011-04-21 17:05:00 2011 4 Thursday 17
3 2011-11-16 10:39:00 2011 11 Wednesday 10
4 2011-03-10 08:40:00 2011 3 Thursday 8

很好!接下来可以直接进入下一部分,绘制销售模式。

绘制销售模式(时间序列洞察)

准备好时间特征后,现在可以提出并回答关于销售发生时间的问题。将从宏观(月度趋势)开始,逐步深入到微观(小时趋势)。

洞察4:月度销售趋势(季节性)

月度聚合对于发现季节性至关重要——即每年重复出现的可预测销售模式。这些数据用于财务预测和为旺季规划库存水平。

将按Month列分组,并计算每个月的总收入。

print(“
 — — 洞察4:月度销售趋势(季节性) — -”)
# 按月份分组并汇总收入
monthly_revenue = df.groupby(‘Month’)[‘Revenue’].sum().sort_values(ascending=False)
# 打印结果,应显示季节性高峰
print(monthly_revenue)

输出:

--- 洞察4:月度销售趋势(季节性) ---
Month
11 143576.360
1 142013.420
12 133178.980
10 119533.540
9 103929.420
3 72968.270
8 71302.890
5 70424.510
6 68722.520
7 68713.831
4 51882.010
2 50178.730
Name: Revenue, dtype: float64

解读:强劲的第四季度与一月份惊喜

数据清楚地显示,NovaShop的销售严重倾向于年底,证实了典型的零售第四季度(十月、十一月、十二月)销售热潮。

  • 旺季: 十一月是销售高峰月,以微弱优势领先,十二月紧随其后。这是备货中型陶瓷顶盖储物罐和投放针对性广告的最佳时机。
  • 一月份激增: 第二高的月份是一月!这对NovaShop来说是一个极佳的洞察。这表明客户可能在使用圣诞礼金或利用节后促销。不应将此期间视为销售淡季,而应视为一个次要的高销量销售机会。
  • 淡季: 二月和四月表现最差,这有助于NovaShop在这些时期规划较低的人员配置和营销预算。

洞察5:按星期几和小时的销售趋势(运营规划)

季节性关乎财务和库存,而每日和每小时趋势则关乎运营。NovaShop可以利用这些信息来安排仓库人员、优化广告支出以及安排电子邮件营销活动的时间。

这里将运行两个独立的聚合:一个是按星期几,另一个是按一天中的小时。

按星期几的收入

# 1. 按星期几的收入
daily_revenue = df.groupby(‘DayName’)[‘Revenue’].sum()
print(“
 — — 按星期几的收入 — -”)
print(daily_revenue)

输出:

--- 按星期几的收入 ---
DayName
Friday 163861.320
Monday 171026.230
Sunday 83125.890
Thursday 219342.980
Tuesday 282796.741
Wednesday 176271.320
Name: Revenue, dtype: float64

解读:星期二是销售主力日

数据揭示了工作日清晰且可操作的规律:

  • 销售高峰: 星期二绝对主导了一周的销售,产生的收入比下一个最繁忙的星期四高出近30%。这是推出新产品或进行高影响力限时抢购的黄金日。
  • 销售低谷日: 不出所料,星期日的销售额大幅下降。NovaShop可能会考虑将这一天视为电子邮件营销或客户服务人员配置的低优先级日。
  • 缺失日: 数据集中样本(或可能是完整数据集,这在B2B数据集中很常见)中没有星期六的交易记录。

按一天中小时的收入

# 2. 按一天中小时的收入
hourly_revenue = df.groupby(‘Hour’)[‘Revenue’].sum().sort_index()
print(“
 — — 按一天中小时的收入 — -”)
print(hourly_revenue)

输出:

--- 按一天中小时的收入 ---
Hour
7 2830.910
8 26597.800
9 76768.750
10 209809.971
11 115233.600
12 142474.460
13 130348.290
14 119241.520
15 145178.980
16 70620.550
17 36148.030
18 14022.790
19 4397.130
20 2751.700

解读:上午晚些时候的销售热潮

小时数据直接指向运营需求:

  • 巨大高峰: 销售在上午10点(第10小时)激增,产生的收入几乎是接下来几小时的两倍。这是NovaShop启动电子邮件营销和社交媒体活动的最佳时间。
  • 持续活跃: 从上午11点到下午3点,销售保持高位,表明存在一个强劲的中午和午餐后购物窗口。
  • 一天结束: 下午4点后活动急剧减少,晚上(晚上7点以后)产生的收入非常少。这表明NovaShop的客户群主要是办公人群,在传统工作时间购物。

结论:为顾客细分奠定基础

至此,已经完成了繁重的EDA工作!知道了什么商品卖得最好(陶瓷罐和费用),销售在哪里最强(英国),以及销售高峰何时出现(第四季度、星期二和上午10点)。

然而,仍然缺少最有价值的一块拼图:顾客是谁。优秀的公司不仅知道什么商品畅销,还知道谁是他们最有价值的顾客以及如何留住他们。

在第三部分中,将深入本系列最先进的分析技术:RFM(最近一次消费、消费频率、消费金额)顾客细分。这将能够将顾客分类为“冠军顾客”、“忠诚顾客”和“有流失风险顾客”等层级,为NovaShop提供真正的个性化营销路线图。

TAGGED:Pandas探索性数据分析数据科学时间序列分析零售分析
Share This Article
Email Copy Link Print
Previous Article 索尼WH-1000XM5耳机特写 年末购物救星:索尼XM5耳机、新款Kindle等超值好物限时特惠
Next Article 节日礼物指南精选产品展示 圣诞送礼倒计时:50美元以下,这些贴心好物让你从容不迫
Leave a Comment

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

最新内容
图6:👉
提升4倍效率:AI编程助手的四大实战技巧
编程与工具
索尼PS5 Pro主机特写
索尼PS5 Pro限时直降100美元!圣诞前入手性能怪兽的最佳时机
科技
线性模式下的小时表示图
你的模型是否“时间失明”?揭秘周期性特征编码的必要性与实践
未分类
安克笔记本充电宝优惠信息图
安克大容量笔记本充电宝重回黑五史低价,仅售87.99美元
科技

相关内容

图1
数据科学与工程

Microsoft Fabric 实时智能:驾驭流式数据的终极指南

2025年10月5日
图1:识别数据文化障碍的分析领域
数据科学与工程

数据文化:是症状,非解药——解锁数据和AI价值的关键

2025年11月11日
未分类

营销人员为何转向准地理提升实验?深度解析与规划指南

2025年9月24日
LinkedIn小游戏帖子截图1
数据科学与工程

500天深度体验:从产品数据科学视角,拆解LinkedIn小游戏的设计与实验

2025年12月6日
Show More
前途科技

前途科技是一个致力于提供全球最新科技资讯的专业网站。我们以实时更新的方式,为用户呈现来自世界各地的科技新闻和深度分析,涵盖从技术创新到企业发展等多方面内容。专注于为用户提供高质量的科技创业新闻和行业动态。

分类

  • AI
  • 初创
  • 学习中心

快速链接

  • 阅读历史
  • 我的关注
  • 我的收藏

Copyright © 2025 AccessPath.com, 前途国际科技咨询(北京)有限公司,版权所有。 | 京ICP备17045010号-1 | 京公网安备 11010502033860号

前途科技
Username or Email Address
Password

Lost your password?

Not a member? Sign Up