跳转到主要内容

pyreaddbc 软件包

项目描述

pyreaddbc

pyreaddbc 是一个用于操作 DBase数据库文件 的Python库。巴西卫生部的遗留系统仍然使用DBF和DBC格式来发布数据。此软件包的开发是为了帮助 PySUS 从这些格式提取数据到更现代的格式。Pyreaddbc 还可以用于将来自任何其他来源的DBC文件进行转换。

安装

您可以使用pip安装 pyreaddbc

pip install pyreaddbc

用法

读取 DBC 文件

从 DBC 中提取 DBF 可能需要指定原始数据的编码,如果已知的话。

import pyreaddbc

dfs = pyreaddbc.read_dbc("LTPI2201.dbc", encoding="iso-8859-1")

导出为 CSV.GZ

要将 DataFrame 导出为压缩的 CSV 文件(CSV.GZ),可以使用 pandas。

import pyreaddbc

df = pyreaddbc.read_dbc("./LTPI2201.dbc", encoding="iso-8859-1")
df.to_csv("LTPI2201.csv.gz", compression="gzip", index=False)

导出为 Parquet

要将 DataFrame 导出为 Parquet 文件,可以使用 pyarrow 库。

import pyreaddbc
import pyarrow.parquet as pq
import pandas as pd
from pathlib import Path

# Read DBC file and convert to DataFrame
df = pyreaddbc.read_dbc("./LTPI2201.dbc", encoding="iso-8859-1")

# Export to CSV.GZ
df.to_csv("LTPI2201.csv.gz", compression="gzip", index=False)

# Export to Parquet
pq.write_table(pa.Table.from_pandas(df), "parquets/LTPI2201.parquet")

# Read the Parquet files and decode DataFrame columns
parquet_dir = Path("parquets")
parquets = parquet_dir.glob("*.parquet")

chunks_list = [
    pd.read_parquet(str(f), engine='fastparquet') for f in parquets
]

# Concatenate DataFrames
df_parquet = pd.concat(chunks_list, ignore_index=True)

许可协议

GNU Affero 通用公共许可证(AGPL-3.0)

本许可证确保软件保持开源并免费使用、修改和分发,同时要求对代码库进行的任何更改或改进都应在相同条款下对社区公开。

致谢
============

此程序将 .dbc 文件解压缩为 .dbf。此代码基于 Mark Adler(zlib/blast)的工作,Pablo Fonseca(https://github.com/eaglebh/blast-dbf)。

PySUS 对此代码进行了进一步扩展和修改,以创建 pyreaddbc。非常感谢 Mark Adler 和 Pablo Fonseca 对本项目的贡献。

注意pyreaddbcAlertaDengue 提供资金支持。

项目详情


下载文件

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

源代码分发

pyreaddbc-1.2.0.tar.gz (57.7 kB 查看散列)

上传时间 源代码

构建分发

pyreaddbc-1.2.0-cp311-cp311-manylinux_2_37_x86_64.whl (64.7 kB 查看散列)

上传时间 CPython 3.11 manylinux: glibc 2.37+ x86-64

由以下机构支持