发布数据集、模型和其他Python对象,使其易于在项目之间以及与同事之间共享。
项目描述
pins
pins软件包发布数据、模型和其他Python对象,使其易于在项目之间以及与同事之间共享。您可以将对象固定到各种固定板,包括文件夹(用于在网络驱动器或像DropBox这样的服务上共享)、Posit Connect、Amazon S3和Google Cloud Storage。固定可以自动进行版本控制,从而可以轻松跟踪更改、在历史数据上重新运行分析以及撤销错误。
有关入门信息,请参阅文档。
您可以使用R和Python中的pins。例如,您可以使用一种语言读取另一种语言创建的固定。有关R的pins的更多信息。
安装
您可以从PyPI安装pins的发布版本。
python -m pip install pins
您还可以从GitHub获取开发版本。
python -m pip install git+https://github.com/rstudio/pins-python
使用方法
要使用pins包,您必须首先创建一个引脚板。一个不错的选择是使用board_folder()
,它将引脚存储在您指定的目录中。在这里,我将使用一个名为board_temp()
的特殊版本的board_folder()
,它创建一个临时板,在您的Python脚本或笔记本会话结束时自动删除。这对于示例来说很棒,但显然您不应该将其用于实际工作!
import pins
from pins.data import mtcars
board = pins.board_temp()
您可以使用.pin_write()
方法将数据“固定”(保存)到板上。它需要三个参数:一个对象、一个名称和引脚类型。
board.pin_write(mtcars.head(), "mtcars", type="csv")
Writing pin:
Name: 'mtcars'
Version: 20230523T115348Z-120a5
Meta(title='mtcars: a pinned 5 x 11 DataFrame', description=None, created='20230523T115348Z', pin_hash='120a54f7e0818041', file='mtcars.csv', file_size=249, type='csv', api_version=1, version=Version(created=datetime.datetime(2023, 5, 23, 11, 53, 48, 555797), hash='120a54f7e0818041'), tags=None, name='mtcars', user={}, local={})
如上所示,我们将数据保存为CSV,但根据您要保存的内容以及您希望谁读取它,您可以使用type
参数将其保存为joblib
、parquet
或json
文件。
您可以使用.pin_read()
稍后检索固定数据。
board.pin_read("mtcars")
mpg cyl disp hp drat wt qsec vs am gear carb
0 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
1 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
2 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
3 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
4 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
您的计算机上的板是一个好的起点,但pins的真正力量在于您使用一个与多个人共享的板。要开始,您可以使用共享驱动器或DropBox上的目录与board_folder()
一起使用,或者如果您使用Posit Connect,则可以使用board_connect()
。
# Note that this uses one approach to connecting,
# the environment variables CONNECT_SERVER and CONNECT_API_KEY
board = pins.board_connect()
board.pin_write(tidy_sales_data, "hadley/sales-summary", type="csv")
然后,其他人(或自动报告)可以读取并使用您的引脚。
board = board_connect()
board.pin_read("hadley/sales-summary")
您可以使用Posit Connect权限面板轻松控制谁可以访问数据。
pins包还包括允许您在Amazon的S3(board_s3()
)、Google Cloud Storage(board_gcs()
)和Azure Blob Storage(board_azure()
)等服务上共享数据的板。
贡献
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。