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)
许可协议
本许可证确保软件保持开源并免费使用、修改和分发,同时要求对代码库进行的任何更改或改进都应在相同条款下对社区公开。
致谢============
此程序将 .dbc 文件解压缩为 .dbf。此代码基于 Mark Adler(zlib/blast)的工作,Pablo Fonseca(https://github.com/eaglebh/blast-dbf)。
PySUS 对此代码进行了进一步扩展和修改,以创建 pyreaddbc。非常感谢 Mark Adler 和 Pablo Fonseca 对本项目的贡献。
注意: pyreaddbc 由 AlertaDengue 提供资金支持。
项目详情
关闭
pyreaddbc-1.2.0.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 5a4733ceeeec2409829e281e738d69e063f5dbdd38b05fb6254d7e8454a0fe80 |
|
MD5 | 40a43ecbe08c8d50ef1707675a0ebda9 |
|
BLAKE2b-256 | 8814bd7247fb5882fa5834b00ae33799c26941a5db9985beecabcc9c375dd231 |
关闭
pyreaddbc-1.2.0-cp311-cp311-manylinux_2_37_x86_64.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 48446cbd497da0b4ec2ad272c050cfad366844af5da8fd7113851c8856e40ace |
|
MD5 | 6d517a5be942cf43da9def8c4b0243a0 |
|
BLAKE2b-256 | 08d4b4a5d5e0354e966d51bbce00be0df67dedd797d76808c152b90af7c6fac3 |