将SAS数据文件导入python数据fram

2024-06-01 22:00:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究一个数据集(PSID),它提供SAS格式的数据(一个.txt和另一个包含解释数据指令的文件)。我在Python中找不到任何东西来读取这种类型的数据。

是否有人知道用于读取SAS数据的预先存在的模块/脚本?

编辑(从注释添加到应答):数据是ascii/text格式的,一行数据的开头如下:

3 10 1015000 150013200 00 002500 00 00


Tags: 模块文件数据texttxt脚本编辑类型
3条回答

从版本17开始,熊猫现在支持读取扩展名为.xpt的sas文件。有关更多详细信息,请参见熊猫文档this link

df = pd.read_sas('sas_xport.xpt')

所以我写了一个可以导入数据的包。可以在这里找到:

https://pypi.python.org/pypi/psid_py

这是我的第一个包裹,很抱歉工作太草率了。此外,它只针对PSID数据集进行了测试,我确信其他SAS格式也存在错误。然而,总比什么都没有好。

除了读取sas数据外,它还将为您构建一个面板数据,以防您陷入这种情况。

当您可以选择下载SAS数据集时,您通常也可以选择下载Stata数据集(这确实是PSID btw的情况)。在这种情况下,最简单的方法可能是使用read_stata导入(这在将来可能会发生变化,但我相信从今天起这是一个非常准确的声明)。

不太方便,但几乎总是可以选择下载文本文件(通常称为文本、ascii或csv)。它们通常有两种类型:分隔(使用逗号或制表符)或空格分隔(列或表)。如果文件是逗号或制表符分隔的,请使用read_csv,并根据需要设置分隔符。如果它是空格分隔的或表格形式的,那么您可能在使用read_csv时运气很好,或者在使用read_fwfread_table时会更好。取决于变量类型和格式。

据我所读,@hd1提到的sas7bdat似乎工作得很好,但还不是熊猫的一部分。出于这个原因,我倾向于默认使用read_stataread_csv,但希望sas7bdat也能很好地工作,也许将来会被带到熊猫体内。另外,我想知道sas7bdat的速度。read_csv已经相当快了很长一段时间,而且read_stata在最新版本中非常快(我相信从15.0开始)。我不确定sas7bdat的速度?

相关问题 更多 >