在python中使用pandas将SAS数据集 (.sas7bdat) 转换为dataframe, excel或csv格式

2018-02-22 15:53:31 — by Kevin Suo


pandas 是 python 中强大的数据分析库。从 pandas 0.18 版本开始,已经原生支持SAS sas7bdat数据集的导入。导入后,您可以根据需要将其再导出为excel或csv等其他格式。

用法:

import pandas as pd

sas7bdat_file = "/path/to/sample.sas7bdat"
df = pd.read_sas(sas7bdat_file) # 得到的是一个标准的 pandas.dataframe 对象

df.head() # 显示前面几行
df.tail() # 显示结尾几行

df.to_csv("/path/to/sample.csv")

注意:

1. 如果您的pandas版本早于0.18,则只能借助于pipy上的sas7bdat库进行导入。因此,最省心的方式是将pandas升级到最新版本。

2. 如果您的pands版本早于0.22,则在导入sas7bdat数据集时,非MMDDYY格式的日期会被作为数值导入,因此导入后日期会相差21916天,这是一个bug,参见我的另一篇早期博文:如何将sas中以整数表示的日期转换为excel日期. 从0.22版本开始,该bug已被修复,几乎所有的日期格式均能被正确地导入。因此,最省心的做法是将您的pandas升级到最新版本。

如果您的 pandas 版本低于当前 PyPi 上的最新版本,建议您立即更新。更新方法:

# 列出过时的软件包:
pip3 list --outdated

# 更新 pandas:
pip3 install -U pandas