news 2026/9/2 1:41:20

使用新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/8/28 21:05:45

YOLO与Slam技术融合:构建动态环境地图

YOLO与SLAM技术融合:构建动态环境地图 在智能机器人穿梭于商场走廊、无人车缓慢驶过园区小径的今天,一个核心问题始终困扰着开发者:如何让机器不仅“看见”世界,还能“理解”它? 传统SLAM系统能精准绘制出墙壁、楼梯和…

作者头像 李华
网站建设 2026/8/28 10:37:11

YOLO目标检测误检漏检原因深度剖析

YOLO目标检测误检漏检原因深度剖析 在工业质检线上,一台PCB板刚进入视觉检测工位,系统瞬间报警:“缺件”。工程师调出图像却发现——元件明明存在,只是位置略有偏移。这并非硬件故障,而是YOLO模型一次典型的漏检&#…

作者头像 李华
网站建设 2026/8/28 7:48:45

基于VUE的“燃冬江城”特产电商网站[VUE]-计算机毕业设计源码+LW文档

摘要:随着互联网技术的飞速发展和电子商务的日益普及,特产电商市场迎来了广阔的发展空间。“燃冬江城”特产电商网站旨在推广和销售具有江城特色的特产商品。本文采用VUE框架进行前端开发,结合后端技术构建了一个功能完善、用户体验良好的电商…

作者头像 李华
网站建设 2026/8/27 18:17:41

YOLO在矿山安全监测中的创新应用案例

YOLO在矿山安全监测中的创新应用案例 在深井矿道中,粉尘弥漫、光线昏暗,一台皮带输送机正高速运转。突然,监控画面里一个未戴安全帽的身影闯入作业禁区——不到800毫秒后,控制室警报响起,现场声光装置启动,…

作者头像 李华
网站建设 2026/9/2 7:47:18

Thinkphp_Laravel框架开发的vue美食推荐系统_wc5xj没论文

目录具体实现截图项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理具体实现截图 本系统(程序源码数据库调试部署讲解)带文档1万字以上 同行可拿货,招校园代理 Thinkphp_Laravel框架开发的vue美食推荐系统_wc5xj没论文 …

作者头像 李华
网站建设 2026/8/31 17:37:57

5.2 自抗扰控制 (ADRC)

5.2 自抗扰控制 (ADRC) 自抗扰控制(Active Disturbance Rejection Control, ADRC)是由韩京清研究员于1998年提出的一种不依赖被控对象精确数学模型的新型控制技术[reference:0]。其核心思想是将系统的模型不确定性、内部参数摄动以及外部负载变化等所有影响统一定义为“总扰…

作者头像 李华