Visions
项目描述
这些数据类型愿景,让我们熬夜到天亮。
语义数据库
Visions
提供了一套定义和使用 语义 数据类型的工具。
-
语义类型 检测与推断在序列数据上。
-
自动化数据处理
-
完全可定制。
Visions
使构建和修改针对特定领域的语义数据类型变得容易。 -
支持多种 后端实现,包括pandas、spark、numpy和python。
-
一组强大的 默认类型和类型集,涵盖了最常见的使用场景。
请查看完整的文档这里。
安装
源代码可在 github 上找到,并通过pip提供二进制安装程序。
# Pip
pip install visions
完整的安装说明(包括额外内容)可在文档中找到。
快速入门指南
如果您想立即播放,请查看上的示例文件夹。否则,让我们获取一些数据。
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv")
df.head(2)
PassengerId | Survived | Pclass | Name | Sex | Age | SibSp | Parch | Ticket | Fare | Cabin | Embarked |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 0 | 3 | Braund, Mr. Owen Harris | male | 22.0 | 1 | 0 | A/5 21171 | 7.2500 | NaN | S |
2 | 1 | 1 | Cumings, Mrs. John Bradley (Florence Briggs Thayer) | female | 38.0 | 1 | 0 | PC 17599 | 71.2833 | C85 | C |
visions
中最重要的抽象是类型 - 这些代表关于数据的语义概念。您可以使用一系列经过充分测试的类型,如Integer
、Float
和Files
,涵盖最常见的软件开发用例。类型可以组合成类型集。在幕后,visions
为任何类型的集合构建一个可遍历的图。
from visions import types, typesets
# StandardSet is the basic builtin typeset
typeset = typesets.CompleteSet()
typeset.plot_graph()
注意:绘图需要安装pygraphviz。
由于类型之间存在特殊关系,这些图可以用来检测数据类型或推断更合适的类型。
# Detection looks like this
typeset.detect_type(df)
# While inference looks like this
typeset.infer_type(df)
# Inference works well even if we monkey with the data, say by converting everything to strings
typeset.infer_type(df.astype(str))
>> {
'PassengerId': Integer,
'Survived': Integer,
'Pclass': Integer,
'Name': String,
'Sex': String,
'Age': Float,
'SibSp': Integer,
'Parch': Integer,
'Ticket': String,
'Fare': Float,
'Cabin': String,
'Embarked': String
}
Visions
解决了处理表格数据时最常见的许多问题,例如,整数序列仍然被视为整数,即使它们在转换为浮点数后具有尾随的0,或者存在缺失值或其他情况。其中大部分清理都是自动完成的,并提供干净、处理过的数据。
cleaned_df = typeset.cast_to_inferred(df)
这仅仅是一些visions能做的事情的冰山一角,包括构建您自己的特定领域的类型和类型集,请查看API文档或examples/目录以获取更多信息!
支持框架
由于其基于派发的实现方式,Visions
能够利用由pandas和spark等库提供的特定框架的功能。目前,它默认支持以下后端。
- Pandas(功能完整)
- Numpy(布尔值、复数、日期时间、浮点数、整数、字符串、时间差、字符串、对象)
- Spark(布尔值、分类、日期、日期时间、浮点数、整数、数值、对象、字符串)
- Python(字符串、浮点数、整数、日期时间、时间差、布尔值、分类、对象、复数 - 其他数据类型未经过测试)
如果您正在使用pandas,它还会利用如swifter之类的并行化工具(如果可用)。
它还提供了一个简单的基于注释的API,用于按需注册新实现。例如,如果您希望扩展分类数据类型以包括Dask特定实现,您可能需要做一些类似以下操作
from visions.types.categorical import Categorical
from pandas.api import types as pdt
import dask
@Categorical.contains_op.register
def categorical_contains(series: dask.dataframe.Series, state: dict) -> bool:
return pdt.is_categorical_dtype(series.dtype)
贡献和支持
欢迎向visions
贡献。有关更多信息,请访问社区贡献页面并加入我们的slack。GitHub 问题跟踪器用于报告错误、功能请求和支持问题。
此外,请查看一些使用visions
的其他公司和包,包括
如果您目前正在使用visions
或希望在此处展示,请告诉我们。
致谢
本包是 dylan-profiler 项目的一部分。该包是 pandas-profiling 的核心组件。更多信息可以在 这里 找到。这项工作部分得到 SIDN Fonds 的支持。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源代码发行版
构建发行版
visions-0.7.6.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 00f494a7f78917db2292e11ea832c6e026b64783e688b11da24f4c271ef1631d |
|
MD5 | 925f05016023c051028cfa040dee6e71 |
|
BLAKE2b-256 | 40178ddcab3699d442a3a21c9859b5573a5b96ec19c51b85525653433bc28f5e |
visions-0.7.6-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 72b7f8dbc374e9d6055e938c8c67b0b8da52f3bcb8320f25d86b1a57457e7aa6 |
|
MD5 | c5878d1e304305eeb9989167fd3468ce |
|
BLAKE2b-256 | 7cbf612b24e711ae25dea9af19b9304634b8949faa0b035fad47e8bcadf62f59 |