数据挖掘技术与应用之使用Pandas对销售数据进行分析

举报
tea_year 发表于 2025/04/25 08:49:28 2025/04/25
【摘要】 通过Pandas读取并转换时间序列数据,将年、月字段合并为日期索引,利用pd.date_range生成完整时间范围,确保数据连续性。函数convert_data_to_timeseries提取指定地点的销售数据,按年月构建日期索引,并填充缺失值为0,最终返回以时间为索引的Series结构,便于后续关联性分析。

  Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。

要求:使用Pandas对销售数据进行分析

通过Pandas读取并转换时间序列数据,将年、月字段合并为日期索引,利用pd.date_range生成完整时间范围,确保数据连续性。函数convert_data_to_timeseries提取指定地点的销售数据,按年月构建日期索引,并填充缺失值为0,最终返回以时间为索引的Series结构,便于后续关联性分析。

现在我们获得了一个连续数据的数据集data.txt,该数据集由年,月份,和AB两地某商品的销售数据组成,我们希望发现这两地销售数据之间是否有关联。

STEP1:查看数据集data.txt的数据构成,我们发现其数据有四列构成,分别代表的是年、月、以及两组销售数据。数据是和时间相关联的。因此我们以时间为索引,转换其数据结构将方便我们的分析。

STEP2:构建convert_data_to_timeseries函数,该函数目的是将原始数据中的某地销售数据转换为Series结构,其索引为年月构成的时间,因为Series强大的功能方便我们进行统计问题一:完善代码实现convert_data_to_timeseries函数功能,在这之前请先熟悉data_range函数的使用方式,data_range函数会返回一个时间索引。练习以下代码,查看其结果。

>>>date_time_index = pd.date_range(start="2018-06-29", end="2018-07-02")

>>>date_time_index = pd.date_range(start="2018-06-29", periods=4)

>>>date_time_index = pd.date_range(periods=4, end="2018-07-02")

>>>date_time_index = pd.date_range(start="2018-01-01", end="2018-07-01", freq='M')

>>>date_time_index = pd.date_range(start="2018-01-01", end="2018-07-01", freq='D')


STEP3:查看数据,将A地(第三列)数据成图,查看其是否存在某种趋势


STEP4:加入第二组销售数据,将两组Series数据转化为二维数据结构DataFrame,索引为时间,DataFrame结构会利于我们的比较。问题二:补全代码,实现上述功能。

STEP5:查看数据,将AB地数据成图,查看两组数据否存在相同趋势

STEP6:从图像中似乎没发现数据的规矩,我们希望借助统计学来观测,问题三:分别计算两组数据的最大最小值,平均值,以及相关系数。请了解相关系数的函数corr(),以及什么是相关系数,请参考http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.corr.html


STEP7:将其相关系数的变化成图。请思考其是否存在规律?

总结

本次实践通过Pandas对销售数据进行时间序列转换与分析,核心目标是探索两地销售数据的关联性。首先,通过pd.read_csv加载数据,并利用pd.to_datetime将年、月字段合并为日期索引,构建时间序列。convert_data_to_timeseries函数的关键在于生成完整的时间范围(pd.date_range),确保数据无断点,并通过reindex填充缺失月份的销售额为0,避免因数据缺失导致分析偏差。

在数据处理过程中,发现原始数据存在月份缺失问题,直接分析可能导致错误结论。通过填充缺失值,保证了时间序列的完整性,为后续计算相关性(如pearsonspearman系数)奠定基础。此外,时间序列的结构化处理(如索引对齐、频率统一)显著提升了数据操作的便捷性,例如可直接调用.corr()方法比较两地销售趋势。

此次实践表明,合理的数据预处理是分析的前提。时间序列分析需关注数据的连续性与完整性,而Pandas提供的日期处理工具(如pd.date_rangeresample)能有效解决此类问题。未来可进一步引入滚动窗口、季节性分解等方法,深入挖掘销售数据的时序特征与关联模式。



【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。