engarde, 用于防御数据分析的库

分享于 

2分钟阅读

GitHub

  繁體 雙語
A library for defensive data analysis.
  • 源代码名称:engarde
  • 源代码网址:http://www.github.com/TomAugspurger/engarde
  • engarde源代码文档
  • engarde源代码下载
  • Git URL:
    git://www.github.com/TomAugspurger/engarde.git
    Git Clone代码到本地:
    git clone http://www.github.com/TomAugspurger/engarde
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/TomAugspurger/engarde
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    Engarde

    Build Status

    用于防御数据分析的python 包。 文档位于 readthedocs

    依赖项
    • pandas

    支持 python 2.7 + 和 3.4 +

    为什么?

    但是,我们的分析通常依赖于对数据的某些假设,这些假设在更新数据集的过程中不应该是不变的。 engarde 是一种轻量级的方法来明确地说明假设,并检查它们是否正确,实际上是 true。

    这是特别重要的,当使用像CSV这样的平面文件,而不是绑定到更结构化的目的地( 比如。 SQL或者 HDF5 )。

    示例

    使用库有两种主要方法,这与我使用 Pandas的两种主要方法相对应: 在解释器中编写小脚本或者交互式。

    首先,在 .py 脚本中最有用的是,基本的思想是将ETL过程的每个步骤写入并返回 DataFrame。 这些函数可以用在过程中应该是 true的不变量来修饰。

    from engarde.decorators import none_missing, unique_index, is_shape@none_missing()deff(df1, df2):
     return df1.add(df2)@is_shape((1290, 10))@unique_indexdefmake_design_matrix('data.csv'):
     out =...return out

    第二,交互方式。集成这条最干净的方法是通过 pipe 方法( 在 Pandas 0.16.2 ( 2015 ) 中引入)。

    >>>import engarde.checks as dc>>> (df1.reindex_like(df2).... pipe(dc.unique_index).... cumsum().... pipe(dc.within_range, (0, 100))... )
    请参见

    相关文章