跳转到主要内容

用于管理调查/行政数据的工具。

项目描述

OpenFisca调查管理器

Newsletter Twitter Slack GitHub Actions Coveralls Python PyPi

[EN] 简介

OpenFisca 是一款通用的微模拟免费软件。您可以查看在线文档以获取更多详细信息。

此存储库包含Survey-Manager模块,用于与OpenFisca和调查数据一起使用。

它提供了两个主要功能

  • 一个Python API,用于访问层次数据格式(HDF)或Parquet格式的数据。
  • 一个脚本,可以将Parquet、SAS、Stata、SPSS和CSV数据文件转换为HDF数据文件,并附带一些元数据,以便它们可以使用Python API。如果格式是Parquet,则保持原样。

对于法国调查数据,您可以在openfisca-france-data仓库中找到下一步的实用信息。

(法文)介绍

OpenFisca是一款开源的微观模拟软件。有关更多信息,请参阅官方文档

该存储库包含Survey-Manager模块。它简化了OpenFisca与调查数据的结合使用。

它提供了两个主要功能

  • 一个Python API,允许访问层次数据格式(HDF)或Parquet格式的数据。
  • 一个脚本,可以将SAS、Stata、SPSS和CSV数据文件转换为HDF数据文件,并附带一些元数据,以便它们可以使用Python API。如果格式是Parquet,则保持原样。

如果您拥有法国的调查数据,openfisca-france-data仓库可能对您的下一步处理很有用。

环境

OpenFisca-Survey-Manager在Python 3.9上运行。较新版本可能也可以运行,但尚未测试。

使用方法

安装

使用PIP安装

如果您正在开发自己的脚本或打算在不修改它的情况下运行OpenFisca-Survey-Manager,您不需要获取其源代码。它只需要被您的环境所知道。为此,首先,使用pip安装软件包

pip install --upgrade pip
pip install openfisca-survey-manager

这不应该显示任何错误,并以

成功安装 [... openfisca-survey-manager-xx.xx.xx ...] 结束

它包含一个build-collection命令,我们将在下一步中使用。

如果您想改进此模块,请参阅下面的开发部分。

使用Conda安装

创建一个环境并安装openfisca-survey-manager

conda create -n survey python=3.9
conda activate survey
conda install -c conda-forge -c openfisca openfisca-survey-manager

您已经准备好了!

退出环境

conda deactivate

获取配置目录路径

要使用OpenFisca-Survey-Manager,您必须创建两个配置文件

  • raw_data.ini,
  • config.ini

要了解它们应复制到何处,请使用以下命令

build-collection --help

您应该得到以下结果。

usage: build-collection [-h] -c COLLECTION [-d] [-m] [-p PATH] [-s SURVEY]
                        [-v]

optional arguments:
  -h, --help            show this help message and exit
  -c COLLECTION, --collection COLLECTION
                        name of collection to build or update
  -d, --replace-data    erase existing survey data HDF5 file (instead of
                        failing when HDF5 file already exists)
  -m, --replace-metadata
                        erase existing collection metadata JSON file (instead
                        of just adding new surveys)
  -p PATH, --path PATH  path to the config files directory (default =
                        /your/path/.config/openfisca-survey-manager)
  -s SURVEY, --survey SURVEY
                        name of survey to build or update (default = all)
  -v, --verbose         increase output verbosity

请记住在-p PATH, --path PATH选项描述中的默认配置目录路径。这是您将设置raw_data.iniconfig.ini文件的目录。在这个例子中,它是/Users/you/.config/openfisca-survey-manager

如果您想使用不同的路径,可以在build-collection中使用--path /another/path选项。尽管这个功能仍然是实验性的。

编辑配置文件

配置文件是INI文件(文本文件)。

raw_data.ini列出了您的输入调查,而config.ini指定了SurveyManager输出的路径。

raw_data.iniconfig.ini不得提交(它们已经被.gitignore忽略)。

raw_data.ini,输入配置

要初始化您的raw_data.ini文件,您可以按照以下步骤操作

  1. 将模板文件raw_data_template.ini复制到您在上一步中确定的配置目录路径,并将其重命名为raw_data.ini。例如:/your/path/.config/openfisca-survey-manager/raw_data.ini

  2. 通过添加您的调查的标题部分来编辑它。例如,如果您将您的调查命名为housing_survey,您应该得到一条带有

[housing_survey]
  1. 在您的原始数据目录位置添加引用(SAS、stata DTA 文件、SPSS、CSV 文件)。在 Windows 路径中,使用 / 而不是 \ 来分隔文件夹。即使路径名称包含空格,也不需要使用引号。

您的文件应该看起来像这样

[housing_survey]

2014 = /path/to/your/raw/data/HOUSING_2014

您也可以这样设置多个调查

[revenue_survey]

2014 = /path/to/your/raw/data/REVENUE_2014
2015 = /path/to/your/raw/data/REVENUE_2015
2016 = /path/to/your/raw/data/REVENUE_2016

[housing_survey]

2014 = /path/to/your/raw/data/HOUSING_2014

config.ini,用于输出配置

初始化您的 config.ini 文件

  1. 将模板文件 config_template.ini 复制到您的配置目录,并将其重命名为 config.ini。例如:/your/path/.config/openfisca-survey-manager/config.ini

  2. 定义一个 collections_directory 路径,其中 SurveyManager 将生成您的调查输入和输出 JSON 描述。例如:/.../openfisca-survey-manager/transformed_housing_survey 对于 housing_survey,您将得到一个 /.../openfisca-survey-manager/transformed_housing_survey/housing_survey.json 文件。

  3. 定义一个 output_directory,其中将注册生成的 HDF 文件。此目录可以是 collections_directory 的子目录。

  4. 定义一个 tmp_directory,将存储临时计算结果。计算结束后,将删除其内容。此目录可以是 collections_directory 的子目录。

您的 config.ini 文件应类似于以下内容

[collections]

collections_directory = /path/to/your/collections/directory

[data]

output_directory = /path/to/your/data/output/directory
tmp_directory = /path/to/your/data/tmp/directory

确保这些目录存在,否则脚本将失败。

构建 HDF5 文件

此步骤将读取您的配置文件和调查数据,并为您的调查生成一个 HDF5 文件(.h5)。为了构建 HDF5 文件,我们将使用 build-collection 脚本。

以下是一个只有一个系列的一个调查的示例:我们只了解 2014 系列的 housing_survey。我们将我们的调查称为集合(使用 -c 选项)并使用以下命令构建 HDF5 文件

build-collection -c housing_survey -d -m -v

-d -m 选项可以确保安全,因为它们会在存在的情况下删除先前的输出。

它将生成

  • 一个列出 housing_survey_2014 调查的 housing_survey.json,其中包含
    • 您的输入 tables 和输入文件路径在 informations 键中,
    • 转换后的调查路径在 hdf5_file_path 键中。
  • 您的转换调查在 housing_survey_2014.h5 文件中。

build-collection 还有什么?

build-collection --help 所示,还有其他选项。以下是一些其他用法示例。

如果您有一个调查的多个系列,例如 revenue_survey,您可以使用以下命令运行特定的 2015 系列

build-collection -c revenue_survey -s 2015 -d -m -v

或者,如果您想指定不同的配置目录路径

build-collection -p /another/path -c housing_survey -s 2014 -d -m -v

尽管 --path /another/path 选项仍然是实验性的。

它应该工作。如果不起作用,请勿犹豫打开一个问题

Parquet 文件

Parquet 文件可以作为输入文件使用。它们不会被转换为 HDF5。由于 Parquet 文件只能包含一个表,我们在调查中的每个表中添加了一个 "parquet_file" 键。此键包含 Parquet 文件的路径,或包含相同表的许多 Parquet 文件的文件夹。

如果您使用文件夹,必须使用以下模式命名您的文件:some_name_-<number>.parquet 并将同一表的文件保留在同一文件夹中。

如果单个文件包含所有表,您可以在同一文件夹中为不同表创建多个文件。

开发

如果您想为 OpenFisca-Survey-Manager 贡献,请随时欢迎!要在开发模式下本地安装它

git clone https://github.com/openfisca/openfisca-survey-manager.git
cd openfisca-survey-manager
make install

测试

运行整个测试套件

make test

使用与持续集成 (CI) 中相同的配置运行整个测试套件

CI=True make test

样式

此存储库遵循一定的编码风格,我们邀请您遵循它以便您的贡献能够及时集成。

运行样式检查器

make check-style

自动格式化您的代码更改

make format-style

每次提交时自动格式化您的代码更改

touch .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit

tee -a .git/hooks/pre-commit << END
#!/bin/sh
#
# Automatically format your code before committing.
exec make format-style
END

项目详情


版本发布历史 发布通知 | RSS订阅

下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

openfisca_survey_manager-2.2.1.tar.gz (107.5 kB 查看哈希值)

上传时间 源代码

构建分发

OpenFisca_Survey_Manager-2.2.1-py3-none-any.whl (129.5 kB 查看哈希值)

上传时间 Python 3

由以下机构支持