使用 Python 进行失业数据分析2025年3月17日 | 阅读11分钟 如何计算失业率? 失业率是通过计算失业人数占总劳动力人口的比例来评估失业状况的指标。在新冠疫情(COVID-19)期间,失业率显著上升,这使得对其进行分析成为一项有价值的数据科学研究。在本教程中,我们将引导您了解使用 Python 进行失业分析的源代码。 简介: 自2020年以来,多家机构一直在记录美国的官方失业数据。美国劳工部的劳工统计局(BLS)每个月初发布上个月美国就业和失业总人数的信息以及各种其他统计数据。失业率是通过失业人数乘以文职劳动力来确定的。要被归类为“失业”,一个人必须年满十六岁,在过去至少四周内没有兼职或全职工作,并且一直在积极寻找工作。 我们团队决定研究美国的失业统计数据,重点关注2000年至2023年。我们的目标是利用这段时期的数据来预测下一年(2023年)的失业率。由于BLS仅以离散的月度增量提供失业率数据,我们计划预测2023年每个月的离散数值。为了确定各种变量如何影响失业率,我们希望检验我们的数据科学专业知识。 数据探索与分析我们从劳工统计局(BLS)网站收集了数据集,这是一个提供美国劳动力市场活动、劳动条件、价格波动和生产力信息的联邦机构。此外,我们还研究了来自圣路易斯联邦储备银行的联邦储备金融数据库 [https://fred.stlouisfed.org/] 的数据,这是该国最可靠的金融信息来源之一。我们获取的CSV文件包含了20多年(2000-2023)的数据,提供了可用于预测未来事件的良好历史视角。我们审查的一些数据字段包括教育程度、种族和性别等信息。 在数据发现阶段,我们使用API密钥从网站上抓取数据。通过使用 reduce() 方法,我们选择了一些与美国失业率相关的报告,将它们映射到一个 DataFrame 中,然后将结果保存为 CSV 文件。接着,我们使用 Python 从数据中移除冗余或空的行和列,并将相似的类别合并到一个 CSV 文件中(例如,将男性和女性信息的不同 CSV 文件合并为 gender.csv)。 在对所有CSV文件进行筛选和清理,只保留相关数据之后,我们建立了一个AWS RDS云数据库,并使用连接字符串进行了连接。 数据集通过导入适当的 Python 模块并使用数据集,我们将开始使用 Python 进行失业数据分析。 主表(仅供参考)
机器学习模型我们的机器学习模型被用于实施项目的分析阶段。我们的数据是连续的,而不是主要进行分类。因此,我们将进行数值预测,而不是二元预测。我们试图做出的预测是到2023年12月底或下个月的失业率会是多少。 K-最近邻模型K-最近邻(KNN)方法是我们将要实践的机器学习模型之一。KNN可用于分类或线性回归。在我们的研究中,我们会将额外的数据分成训练集和测试集,这些数据包括API请求期间检索到的肉类消费价格和各行业的职位空缺信息。 观察
支持向量回归模型SVR模型是一种监督学习模型,常用于预测离散值。由于我们项目的目标是预测2023年每个月的离散失业率数字,这将有助于我们实现这一目标。 观察
自回归综合移动平均模型作为另一个时间序列预测模型,我们研究了自回归综合移动平均(ARIMA)机器学习模型。预测是估算一个序列未来值的一种常用机器学习技术。时间序列可以是年度的(例如,年度预算)、季度的(例如,费用)、月度的(例如,空中交通)、每周、每日、每小时(例如,股票价格)、分钟(例如,呼叫中心的来电)甚至秒(例如,网站流量)。这很适合我们的研究,因为失业率数据通常按月或按年提供,而我们的目标是预测年底(当年12月)甚至下个月底的潜在失业率值。为了预测到2023年12月美国的总体失业率以及每个因素,我们希望应用时间序列模型,每次使用单个数据集CSV来量化潜在的失业率。 观察
首先,我们想确定2023年这22个月中每个月的预期全国失业率。如果测试成功,我们计划对其他类别重复此测试。然而,鉴于我们甚至在初始的分类数据集中就遇到了问题,我们得出结论,无论选择哪个类别的数据集,这些问题都将持续存在。 安装
用途按以下步骤使用此项目
使用 Python 进行失业分析的源代码我将使用印度的失业数据集来分析失业情况,因为失业率是基于特定地点确定的。我这里使用的数据集包含了印度从2003年到2029年的失业率信息。因此,让我们通过导入所需的 Python 模块和数据集来开始失业分析的工作。 分析数据集 读取数据 源代码片段 输出
源代码片段 输出
源代码片段 输出
源代码片段 输出 Region string Date string Frequency string Estimate Jobless Rate (%) float64 Estimate Employed float64 Estimate Labour Participation Rate (%) float64 Area string dtype: string 源代码片段 输出
数据处理 在此阶段,对前一阶段输入到计算机的数据进行实际处理以供解释。处理过程本身可能会因被处理数据的来源(数据湖、社交媒体平台、连接设备等)以及其用途(研究广告模式、从关联设备进行医疗诊断、确定客户需求等)而略有不同。处理是使用机器学习算法进行的。 源代码片段 输出 Region 28 Date 28 Frequency 28 Estimate Jobless Rate (%) 28 Estimate Employed 28 Estimate Labour Participation Rate (%) 28 Area 28 dtype: int64 源代码片段 输出 (968, 9) 源代码片段 输出 Region 0 Date 0 Frequency 0 Estimate Jobless Rate (%) 0 Estimate Employed 0 Estimate Labour Participation Rate (%) 0 Area 0 dtype: int64 源代码片段 输出 (940, 9) 让我们检查一下这个数据集中是否有任何缺失值。 源代码片段2 输出 Region 0 Date 0 Frequency 0 Estimate Jobless Rate (%) 0 Estimate Employed 0 Estimate Labour Participation Rate (%) 0 Region.2 0 longitude 0 latitude 0 dtype: int64 在检查了缺失值之后,我发现列名不正确。为了使这些数据更容易理解,我将按如下方式更改所有列名。 源代码片段 现在让我们检查一下这个数据集中特征之间的关系。 源代码片段 输出 ![]() 现在让我们通过数据可视化来分析失业率。我将首先查看印度不同地区的估计就业人数。 源代码片段 输出 ![]() 让我们检查一下印度不同地区的失业率。 源代码片段 输出 ![]() 现在创建一个仪表板,按地区查看印度各邦的失业率。我将在这里使用旭日图布局。 源代码片段 输出 ![]() 总结以上就是如何使用 Python 语言分析失业率的方法。失业率是通过计算失业人数占总劳动力人口的比例来评估失业状况的指标。希望您喜欢阅读这篇关于基于 Python 的失业率分析的教程。 下一个主题Python 中的二叉搜索树 |
我们请求您订阅我们的新闻通讯以获取最新更新。