用于data.world的python库

datadotworld的Python项目详细描述


快速启动

安装

您可以直接从pypi使用 pip 安装它:

pip install datadotworld

也可以安装库,包括熊猫支持:

pip install datadotworld[pandas]

如果您使用conda来管理您的python发行版,您可以从社区维护的[conda forge]安装( https://conda forge.github.io/ )频道:

conda install -c conda-forge datadotworld-py

配置

此库需要data.world api身份验证令牌才能工作。

一旦在下面启用python,就可以在data.world上获取身份验证令牌 集成>;python

要配置库,请运行以下命令:

dw configure

或者,可以通过 dw_auth_token 环境变量提供令牌。 在MacOS或Unix计算机上,运行(用前面获得的令牌替换下面的 <;your_token>; ):

export DW_AUTH_TOKEN=<YOUR_TOKEN>

加载数据集

load_dataset()函数有助于在本地文件系统上维护数据集的副本。 它将下载给定数据集的数据包 并将其存储在 ~/.dw/cache下。当随后使用时, load_dataset() 将使用存储在磁盘上的副本,并将 脱机工作,除非使用 force-update=true auto-update=true 调用它。 强制更新=真 将无条件覆盖本地副本。 自动更新=真 仅当data.world上有更新版本的数据集时,才会覆盖本地副本。

加载后,数据集(数据和元数据)可以通过 load\u dataset() 返回的对象方便地访问。

首先导入 datadotworld 模块:

importdatadotworldasdw

然后,调用 load_dataset() 函数,下载一个数据集并在本地使用它。 例如:

intro_dataset=dw.load_dataset('jonloyens/an-intro-to-dataworld-dataset')

数据集对象允许通过三种不同的属性访问数据:原始数据、表和数据帧。 每个属性都是一个映射(dict),其值类型为 bytes list pandas.dataframe , 分别是。值在加载后被延迟加载和缓存。他们的钥匙是文件的名字 包含在数据集中。

例如:

>>>intro_dataset.dataframesLazyLoadedDict({'changelog':LazyLoadedValue(<pandas.DataFrame>),'datadotworldbballstats':LazyLoadedValue(<pandas.DataFrame>),'datadotworldbballteam':LazyLoadedValue(<pandas.DataFrame>)})

重要信息 :并非数据集中的所有文件都是表格式的,因此有些文件将仅通过 原始数据 公开。

表是行的列表,每个行都由列名到其各自值的映射(dict)表示。

例如:

>>>stats_table=intro_dataset.tables['datadotworldbballstats']>>>stats_table[0]OrderedDict([('Name','Jon'),('PointsPerGame',Decimal('20.4')),('AssistsPerGame',Decimal('1.3'))])

您还可以使用 describe 函数查看与文件或整个数据集关联的元数据。 例如:

pip install datadotworld
0

查询数据集

query() 函数允许使用 sql sparql 查询语言实时查询数据集。

要查询数据集,请调用 query() 函数。 例如:

pip install datadotworld
1

查询结果对象允许通过类型为 json list pandas.dataframe

例如:

pip install datadotworld
2

表是行的列表,每个行由列名到它们各自的值的映射(dict)表示。 例如:

αα-α13

要使用sparql进行查询,请使用 查询调用 query() ,否则,它将假定 查询是一个SQL查询。

与数据集的情况一样,您可以使用 describe() 查看与查询结果关联的元数据。 功能。

例如:

pip install datadotworld
4

使用文件

open_remote_file() 函数允许您在 data.world数据集。

写入文件

open_remote_file() 调用返回的对象类似于 将用于写入本地文件-它有一个 write() 方法,并将内容发送到该方法 方法将远程写入文件。

pip install datadotworld
5

当然,编写文本文件不是data.world的主要用例-您需要编写 数据!从 open_remote_file() 返回的对象应该可以在任何正常情况下使用 在写模式下使用本地文件句柄-以便可以使用它序列化熊猫的内容 数据帧 到CSV文件…

pip install datadotworld
6

或者,将一系列 dict 对象作为json行文件编写…

pip install datadotworld
7

或者把一系列的dict对象写成csv…

pip install datadotworld
8

最后,如果打开 二进制模式下的文件…

pip install datadotworld
9

读取文件

您还可以以类似的方式从文件中读取数据

pip install datadotworld[pandas]
0

从文件读入通用解析库也很自然-以"r"模式打开时, file对象充当文件中行的迭代器:

pip install datadotworld[pandas]
1

读取二进制文件也很自然-在"rb"模式下打开时, read() 返回 文件作为字节数组,文件对象作为字节的迭代器:

pip install datadotworld[pandas]
2

其他API功能

有关可用API操作的完整列表,请参见 正式文件

python包装器由apiclient类实现。要获取实例,只需调用 api_client 。 例如:

pip install datadotworld[pandas]
3

客户端当前实现以下功能:

  • 创建数据集
  • 更新数据集
  • 替换数据集
  • 获取数据集
  • 删除数据集
  • 通过URL添加文件
  • 附加记录
  • 上传文件
  • 上传文件
  • 删除文件
  • 同步文件
  • 下载数据集
  • 下载文件
  • 获取用户数据
  • 获取有贡献的数据集
  • 获取喜欢的数据集
  • 获取数据集
  • 获取有贡献的项目
  • 获取喜欢的项目
  • 获取项目
  • 获取项目
  • 创建项目
  • 更新项目
  • 替换项目
  • 添加链接的数据集
  • 删除链接的数据集
  • 删除项目
  • 深入了解
  • 为项目获取见解
  • 创建洞察力
  • 更换洞察力
  • 更新洞察力
  • 删除洞察力

有关 apiclient 可用于的一些示例,请参见下文。

从url添加文件

add_files_via_url() 函数可用于将文件从url添加到数据集。 这可以通过指定 文件 作为字典来实现,其中键是所需的文件名,每个项是包含 url的对象 说明 和标签

例如:

pip install datadotworld[pandas]
4

将记录附加到流

函数append_record() 允许您将json数据追加到与数据集关联的数据流中。流不需要预先创建。第一次在追加操作中使用streamid时会自动创建流。

例如:

pip install datadotworld[pandas]
5

流的内容将作为相应数据集的一部分显示为.jsonl文件。

您可以使用 帮助(客户端)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用ContentExchange设置请求属性   java Spark/Hdfs/Hdfsclient兼容性   java springcloudstreamkafka配置:instanceCount和instanceIndex   Java中web服务序列化日期   java用动态数据替换占位符   java git gc似乎覆盖了一个packfile,留下了一个打开的文件描述符,其中包含对“oldxxx.pack”的引用   为什么Apache项目对Java版本敏感?   java Anylogic帮助如何在导入的3dobject通过输送机上的多个“站”时更改其颜色?   JavaEclipseNeonM2E可以导入一个大型项目,但似乎不能自动解决依赖关系   java@FindBy搜索具有满足条件的子元素的元素   java如何将ActionEvent e与键绑定一起使用?   java转换以集中方式从外部库抛出的异常   java中用户文件/数据文件与系统/程序文件的区别   java使用变量字符串或字符作为对象名   字体使用Java图形操纵字符串中每个字符的形状   JavaFX图表移动数据   java RandomAccessFile:将所有项设置为相同的字节数?   java Google Play inapp Billing onPurchasesUpdated()错误响应代码1   java在不知道属性名和属性数的情况下处理json对象   java是否可以一次从HazelcastInstance(映射和列表)中删除所有数据?