聚合特征生成变得容易。

collate的Python项目详细描述


===
整理
==




…图像::https://img.shields.io/pypi/v/collate.svg
:目标:https://pypi.python.org/pypi/collate

…图片::https://travis-ci.org/dssg/collate.svg?branch=master
:目标:https://travis ci.org/dssg/collate

…图片::https://readthedocs.org/projects/collate/badge/?version=latest
:目标:https://collate.readthedocs.io/en/latest/?徽章=最新
:alt:文档状态

…图像::https://pyup.io/repos/github/dssg/collate/shield.svg
:目标:https://pyup.io/repos/github/dssg/collate/
:alt:updates

图片::https://codecov.io/gh/dssg/collate/branch/master/graph/badge.svg
:目标:https://codecov.io/gh/dssg/collate
:alt:代码覆盖率




聚合功能生成变得简单。


*非商业用途的免费软件:`uchicago开源许可证<;https://github.com/dssg/collate/blob/master/license>;`.
*文档:https://collate.readthedocs.io.


overview
==



输入
==


以"芝加哥市食品检验数据"为例<;https://data.city of chicago.org/health human services/food inspections/4ijn-s7e5>;`。这张表看起来像这样:




====================================================================================================================================================================================================
1966765 8027360636 2016-10-18禁止进入……
1966314 2092894 60640 2016-10-11通行证……更正……
1966286 2215628 60661 2016-10-11通行证w/c…………危险……
1966220 2424039 60620 2016-10-07通行证。.
数据中有两个空间级别:特定餐厅(按其许可证号)和邮政编码。还有一个日期。

在raw sql中,可以对每个餐厅计算此值,如下所示:

ts='fail')::int"},"sum",{'coltype':'aggregate','all':{'type':'mean'})

要执行的功能。第三个参数为如何处理结果字段中空值的插补提供了一组规则。

例如,除了
总数之外,您还可能对导致失败的检查的比例感兴趣。这很容易用"failed"的平均值指定
计算::

聚合({"failed":"(results='fail')::int"},["sum","avg"],{'coltype':'aggregate','all':{'type':'mean'})



collate中的聚合很容易跨不同的时空组聚合此单个功能,例如::

st=spacetimeaggregation([失败],
来自"食品检查",
组=["许可证编号","邮政编码],
间隔={"许可证编号":["2年","3年"],"邮政编码":["1年"]},
日期=["2016-01-01","2015-01-01"],
日期列="检查日期",
状态表="所有餐厅",
状态组="许可证号",
模式="测试对比"

"spacetimeaggregation"对象封装查询的"from"部分(在本例中,它只是检查表),以及"group by"列。这不仅会创建有关各个餐厅的信息
(按"许可证"分组),还会创建"邻居"列,添加有关餐厅所在区域的信息(按
"zip"分组)。这里指定的"state_table"应该包含一组完整的
``state_group``实体和应该为它们生成输出的日期,
不管它们是否存在于"from_obj``中。

``spacetimeaggregation``对象提供。它将在
中创建多个查询,以便创建过去1年、2年或3年的汇总统计数据,从2015年1月1日或2016年1月1日开始查找
。使用sqlalchemy engine对象执行这组查询:

st.execute(engine.connect())将在"test戆collate"架构中创建四个新表。表
``食品检验许可证编号``将为每个
许可证包含四个特征列,描述过去两到三年内失败的总数和比例,日期列说明2016年或2015年之前的失败情况。类似地,"food_inspections_zip"表对于数据库中的每个邮政编码都有两个
功能列,查看日期列中日期
之前一年内该邻居的故障总数和
平均数。"食品检验汇总"表将这些结果合并在一起,以便更容易地查看任何给定餐厅的邻里和餐厅级别的影响。最后,``food_inspections_aggregation_imputed``
表使用``aggregate`
构造函数中指定的插补规则填写空值。


r/>"coltype":"aggregate"、
"all":{"type":"mean"}、
"max":{"type":"constant"、"value":137}
}

重新应用。

字典的其他键是聚合
(如"sum"、"count"、"avg"等)或"all"作为catch all使用的归约函数。特定于函数的
规则将优先于"全部捕获"规则。与这些
键相关联的值都是一个字典,每个字典都有一个指定规则类型的必需"type"键和其他特定于规则的键。

当前可用的插补规则:
*`` mean``:特征的平均值(对于"spacetimeaggregation`",取平均值在日期内)。
*``常量`:从所需的``值``参数中填充常量值。
*``零`:用零填充。
*``zero_noflag``:用零填充而不生成"估算"标志。此选项应仅用于显式知道空值为零的情况,例如事件表中没有实体表示没有发生此类事件。
*``空类别`:仅适用于分类功能。只需用空category列标记空值。
*`` binary_mode`:仅适用于聚合列类型。获取二进制功能的模式值。
*``error`:如果此功能遇到任何空值,则引发异常。


outputs
==


collate聚合的主输出是一个数据库表,其中所有聚合的功能都联接到实体列表中











>使用示例
====





>多个数量
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~





>多个函数
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
待办事项

日期~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~br/>




~~~~~~~~~~~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
待办事项/>===
历史记录
=



>0.1.0
----


*初始版本。




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

推荐PyPI第三方库


热门话题
iOS MDM注册配置文件请求/Profile使用java对证书进行签名   java如何调试GWT项目中的PHP文件   Mac和Windows之间的Java文件getFreeSpace差异   java从ArrayList进入JComboBox   ApacheKafka如何执行zookeeperserverstart。我的java程序中的bat文件?   JAXRS应用程序的java初始化   java如何为double覆盖compareTo方法?   使用进程动态运行java代码   sockets java。网SocketException:权限被拒绝openshift   java PorterduffXfermode:清除位图的一部分   其他线程中变量的java更改侦听器   java如何初始化接口实例以与父片段中的子片段通信   java Cordova插件在构建时出错,源代码1.6中不支持菱形运算符使用源代码7   java是学习编程的教育游戏吗?   在不同机器上使用JasperReports API运行代码时出现java问题   java Spring引导延迟Flyway序列化循环依赖   未为加密/解密初始化java密码