news 2026/2/25 14:48:39

使用新Python API客户端访问Data Commons

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用新Python API客户端访问Data Commons

引言

数据是任何数据专业人员工作的核心。如果没有有用且有效的数据源,我们就无法履行职责。此外,质量低下或不相关的数据只会让我们的工作白费。这就是为什么能够访问可靠的数据集是数据专业人员的重要起点。

Data Commons 是某机构发起的一项开源计划,旨在组织世界上可用的数据,并让每个人都能访问和使用。任何人都可以免费查询公开可用的数据。Data Commons 与其他公共数据集项目的不同之处在于,它已经完成了图式化工作,使数据可以更快地投入使用。

鉴于 Data Commons 在数据工作中的实用性,访问它对于许多数据任务变得至关重要。幸运的是,Data Commons 提供了一个新的 Python API 客户端来访问这些数据集。

使用 Python 访问 Data Commons

Data Commons 的工作原理是将数据组织成一个可查询的知识图谱,该图谱将来自不同来源的信息统一起来。其核心是使用基于 schema.org 的模式模型来标准化数据表示。

利用这种模式,Data Commons 可以将各种来源的数据连接到一个单一的图谱中,其中节点代表实体(如城市、地点、人物)、事件和统计变量。边则描绘了这些节点之间的关系。每个节点都是唯一的,并通过 DCID 进行标识,许多节点包含观测值——与变量、实体和时期相关联的测量值。

通过 Python API,可以轻松访问知识图谱以获取所需数据。让我们尝试一下如何操作。

首先,需要获取一个免费的 API 密钥来访问 Data Commons。创建一个免费账户,并将 API 密钥复制到安全位置。也可以使用试用 API 密钥,但访问权限更为有限。

接下来,安装 Data Commons Python 库。我们将使用 V2 API 客户端,因为它是最新版本。运行以下命令以安装 Data Commons 客户端,并可选地支持 Pandas DataFrame。

pipinstall"datacommons-client[Pandas]"

库安装完成后,就可以使用 Data Commons Python 客户端获取数据了。

要创建用于从云端访问数据的客户端,请运行以下代码。

fromdatacommons_client.clientimportDataCommonsClient client=DataCommonsClient(api_key="YOUR-API-KEY")

Data Commons 中最重要的概念之一是实体,它指的是现实世界中持久存在且物理存在的事物,例如城市或国家。这成为获取数据的重要组成部分,因为大多数数据集都需要指定实体。您可以访问 Data Commons Place 页面以了解所有可用的实体。

对于大多数用户而言,想要获取的数据更具体:存储在 Data Commons 中的统计变量。要选择要检索的数据,需要知道统计变量的 DCID,您可以通过 Statistical Variable Explorer 找到它。

您可以过滤变量并从上述选项中选择一个数据集。例如,为“每 10 万成年人拥有的 ATM 机数量”选择世界银行数据集。在这种情况下,您可以通过查看资源管理器提供的信息来获取 DCID。

如果点击 DCID,可以看到与该节点相关的所有信息,包括它如何与其他信息连接。

对于统计变量 DCID,我们还需要为地理区域指定实体 DCID。我们可以探索上面提到的 Data Commons Place 页面,或者使用以下代码来查看某个地点名称的可用 DCID。

# 通过地点名称查找 DCID(返回多个候选)resp=client.resolve.fetch_dcids_by_name(names="Indonesia").to_dict()dcid_list=[c["dcid"]forcinresp["entities"][0]["candidates"]]print(dcid_list)

输出类似于:

['country/IDN','geoId/...','...']

使用上面的代码,我们获取了特定地点名称可用的 DCID 候选列表。例如,在“Indonesia”的候选列表中,可以选择country/IDN作为国家 DCID。

现在所有需要的信息都已准备就绪,只需执行以下代码:

variable=["worldBank/GFDD_AI_25"]entity=["country/IDN"]df=client.observations_dataframe(variable_dcids=variable,date="all",entity_dcids=entity)

结果显示在下面的数据集中。

当前的代码返回所选变量和实体在整个时间范围内的所有可用观测值。在上面的代码中,您还会注意到我们使用的是列表而不是单个字符串。

这是因为我们可以同时传递多个变量和实体以获取组合数据集。例如,下面的代码同时获取两个不同的统计变量和两个实体。

variable=["worldBank/GFDD_AI_25","worldBank/SP_DYN_LE60_FE_IN"]entity=["country/IDN","country/USA"]df=client.observations_dataframe(variable_dcids=variable,date="all",entity_dcids=entity)

输出如下所示:

可以看到,生成的 DataFrame 合并了之前设置的变量和实体。通过这种方法,无需为每个组合执行单独的查询即可获取所需的数据。

这就是使用新的 Python API 客户端访问 Data Commons 所需了解的全部内容。当您的工作需要可靠的公共数据时,请使用这个库。

总结

Data Commons 是某机构发起的一项旨在普及数据访问的开源项目。该项目与许多公共数据项目有着本质的不同,因为其数据集建立在一个知识图谱模式之上,这使得数据更容易统一。

本文探讨了如何使用 Python 访问图谱内的数据集——利用统计变量和实体来检索观测值。

希望本文对您有所帮助!
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/14 7:03:56

YOLO模型结构图解:Backbone、Neck与Head详解

YOLO模型结构解析:从Backbone到Head的工程实践洞察 在自动驾驶感知系统中,一帧视频流需要在几十毫秒内完成数百个目标的识别与定位;在工业质检产线上,微米级缺陷必须在高速运转中被实时捕捉。这些场景对目标检测算法提出了近乎苛刻…

作者头像 李华
网站建设 2026/2/24 6:48:32

YOLO在轨道交通异物侵限检测中的应用研究

YOLO在轨道交通异物侵限检测中的应用研究 城市轨道交通的飞速发展带来了巨大的客流承载能力,也对运营安全提出了前所未有的挑战。在地铁、轻轨、高铁等系统中,轨道区域一旦出现非法入侵——无论是人员误入、设备脱落,还是外部物体坠落——都可…

作者头像 李华
网站建设 2026/2/23 8:15:57

YOLO模型参数量太大?教你如何选择合适版本

YOLO模型参数量太大?教你如何选择合适版本 在智能摄像头、工业质检线甚至无人机上,你可能都见过这样的场景:设备需要“看清”眼前的世界——识别行人、检测缺陷、追踪目标。而背后支撑这一切的,往往是一个叫 YOLO 的模型。它像一位…

作者头像 李华
网站建设 2026/2/24 0:00:23

5.1 滑模控制(SMC)及其改进

5.1 滑模控制(SMC)及其改进 滑模控制(Sliding Mode Control, SMC),又称变结构控制,是一种因其对参数摄动和外部干扰具有强鲁棒性而备受关注的非线性控制策略。自20世纪下半叶理论体系初步建立以来,SMC在电机驱动、机器人、航空航天等对可靠性与动态性能要求苛刻的领域得…

作者头像 李华
网站建设 2026/2/24 23:47:54

springboot_ssm音乐播放在线试听网站

目录具体实现截图系统所用技术介绍写作提纲核心代码部分展示系统性能结论源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!具体实现截图 springboot_ssm音乐播放在线试听网站 系统所用技术介绍 本系统采取了一系列的设计原则&#…

作者头像 李华
网站建设 2026/2/23 13:31:34

YOLO在停车场车牌识别系统中的集成方案

YOLO在停车场车牌识别系统中的集成方案系统挑战:当智能停车遇上真实世界 在城市出入口、商业综合体地下车库或高速公路服务区,每天都有成千上万辆车进出。如何让道闸“一眼认出”车牌并自动放行?这看似简单的动作背后,藏着不少技术…

作者头像 李华