目 录CONTENT

文章目录

使用新的Python API客户端访问数据共享中心

Administrator
2025-10-22 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

📢 转载信息

原文链接:https://www.kdnuggets.com/accessing-data-commons-with-the-new-python-api-client

原文作者:Cornellius Yudha Wijaya


Accessing Data Commons with the New Python API Client
Image by Editor

 

# 引言

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

Data Commons(数据共享中心)是谷歌发起的一项开源倡议,旨在整理全球现有数据,使其可供所有人使用。任何人都可以免费查询公开数据。Data Commons 有别于其他公共数据集项目的独特之处在于,它已经完成了数据架构化工作,能让数据准备工作更快投入使用。

考虑到 Data Commons 对我们工作的实用性,访问它正成为许多数据任务的关键环节。幸运的是,Data Commons 提供了一个新的 Python API 客户端来访问这些数据集。

# 使用 Python 访问 Data Commons

 
Data Commons 通过将数据组织成一个可查询的知识图谱来工作,该图谱整合了来自不同来源的信息。其核心是使用 schema.org 的基于模式(schema-based)的模型来标准化数据表示。

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

通过 Python API,我们可以轻松访问知识图谱以获取所需数据。让我们尝试看看如何实现这一点。

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

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

pip install "datacommons-client[Pandas]"

 

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

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

from datacommons_client.client import DataCommonsClient
client = DataCommonsClient(api_key="YOUR-API-KEY")

 

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

对于大多数用户来说,我们想要获取的数据更加具体:即存储在 Data Commons 中的统计变量。要选择我们要检索的数据,我们需要知道统计变量的 DCID,你可以在 统计变量浏览器中找到它。

 
Accessing Data Commons with the New Python API Client
 

你可以根据上方的选项过滤变量并选择一个数据集。例如,选择“每十万成年人拥有的自动取款机(ATMs)”的世界银行数据集。在这种情况下,你可以通过查看浏览器中提供的信息来获取 DCID。

 
Accessing Data Commons with the New Python API Client
 

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

 
Accessing Data Commons with the New Python API Client
 

对于统计变量 DCID,我们还需要为地理位置指定实体 DCID。我们可以探索上面提到的 Data Commons 实体页面,或者使用以下代码查看特定地名可用的 DCID。

# 根据地名查找 DCID(返回多个候选)
resp = client.resolve.fetch_dcids_by_name(names="Indonesia").to_dict()
dcid_list = [c["dcid"] for c in resp["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
)

 

结果如下所示的数据集中:

 
Accessing Data Commons with the New Python API Client
 

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

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

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
)

 

输出如下:

 
Accessing Data Commons with the New Python API Client
 

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

以上就是使用新的 Python API 客户端访问 Data Commons 所需要知道的一切。每当你需要可靠的公共数据来完成工作时,都可以使用这个库。

# 总结

 
Data Commons 是谷歌发起的一项开源项目,旨在实现数据访问的民主化。该项目与许多公共数据项目有着本质上的不同,因为数据集是建立在知识图谱模式之上的,这使得数据更容易统一。

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

希望这对您有所帮助!
 
 

Cornellius Yudha Wijaya 是一名数据科学助理经理兼数据撰稿人。在 Allianz Indonesia 全职工作的同时,他喜欢通过社交媒体和写作平台分享 Python 和数据技巧。Cornellius 撰写了各种关于人工智能和机器学习主题的文章。




🚀 想要体验更好更全面的AI调用?

欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。

0

评论区