我有一个SAS数据集 http://www.principlesofeconometrics.com/sas/cars.sas7bdat当我运行它时,我在 SAS 上得到以下输出:
我还有以下 Python 代码,它获取 .sas7bdat 文件并显示输出,即这里的前五个观察结果。
import pandas as pd
file_name = "cars.sas7bdat"
my_df = pd.read_sas(file_name)
my_df = my_df.head()
print(my_df)
正如您所看到的,当涉及到整数数据类型时,它不能正确工作。 CYL 和 WGT 变量是整数,但如果我使用 pandas' 则无法正确显示read_sas函数 http://pandas.pydata.org/pandas-docs/version/0.20/generated/pandas.read_sas.html.
知道这是怎么回事吗?
SAS 将所有数字表示为 64 位(8 字节)浮点数。但是您可以通过告诉它存储少于 8 个字节来节省磁盘空间。您发布的数据集针对 CYL 和 WGT 执行了此操作。
当 SAS 从磁盘读回数据集以供使用时,它将丢失的最低有效字节设置为二进制零。显然read_sas
不明白这一点,它没有将丢失的字节设置为二进制零,而是做了其他事情。因此看似随机的数据。
CYL 的第一个值是8
在 IEEE 浮点数中是十六进制代码
40 20 00 00 00 00 00 00
您所显示的价值8.00046
将会是这个值。
40 20 00 06 07 80 FD C1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)