用于 Python 的 sas7bdat 文件阅读器
项目描述
sas7bdat.py
该模块将使用纯 Python(2.6+、3+)读取 sas7bdat 文件。无需 SAS 软件!该模块最初是作为同名 R 脚本的一个端口,可在此处找到:https ://github.com/BioStatMatt/sas7bdat ,但此后已完全重写。
该库还包含一个简单的命令行脚本,
sas7bdat_to_csv它将 sas7bdat 文件转换为 csv 文件。它还将使用该--header选项打印出标题信息和元数据,并且还将批量转换文件。使用该--help选项了解更多信息。
照原样,我已经成功测试了我在互联网上找到的近三百个示例文件的脚本。在大多数情况下,它运作良好。我们现在可以读取压缩文件了!
我敢肯定还有更多我还没有遇到的问题。如果您遇到不受支持的数据文件,请告诉我,我会看看是否可以添加对该文件的支持。
用法
要安装,请运行:
pip install sas7bdat
要创建 sas7bdat 对象,只需向构造函数传递文件路径。该对象是可迭代的,因此您可以像这样读取内容:
#!python
from sas7bdat import SAS7BDAT
with SAS7BDAT('foo.sas7bdat', skip_header=True) as reader:
for row in reader:
print row
每行将是类型为string、float、datetime.date、
datetime.datetime或的值的列表datetime.time。如果没有skip_header,则返回的第一行将是 SAS 变量名称。
如果您想获得 pandas DataFrame,请使用以下to_data_frame方法:
#!python
df = reader.to_data_frame()
变量属性
可从reader.columns. 这些列的顺序将与每个 中的相应值相同row。每个Column都有以下属性:
col_id(int) - 列号name(bytes)label(bytes)format(str)type(str)length(int)