Spyder,变量资源管理器,xpt

时间:2018-11-19 14:06:52

标签: python pandas sas spyder

我是从SAS背景来学习Python的。

我已使用以下命令将SAS版本5传输文件(XPT)导入python:

df = pd.read_sas(r'C:\mypath\myxpt.xpt')

该文件是简单的SAS传输文件,是从使用以下方法创建的SAS数据集转换而来的:

DATA myxpt;
  DO i = 1 TO 10;
    y = "XXX";
    OUTPUT;
  END;
RUN;

文件正确导入,我可以使用以下内容查看内容:

print(df)

screenshot showing print of dataframe

但是,当我使用变量资源管理器查看文件时,所有字符列均显示为空白。

Screenshot showing data frame viewed through Variable explorer

我尝试将其读取为sas数据集而不是传输文件,并将其导入Python中,但是存在相同的问题。

我还尝试在python中创建一个包含字符列的数据框,并在变量资源管理器中正确显示。

有什么建议吗?

谢谢。

1 个答案:

答案 0 :(得分:4)

Y列是一列二进制字符串。您必须先对其进行解码。变量资源管理器无法猜测正确的编码,并且显然不显示二进制字符串。如果您不知道编码,则必须猜测。尝试df['utf8']=df.Y.str.decode('utf8'),查看信息是否有意义。

您已经注意到,可以在导入函数中指定编码:

df = pd.read_sas(r'C:\mypath\myxpt.xpt', encoding='utf8')

作为旁注,您应该始终了解并最好明确使用的编码方式,以免引起严重头痛。

有关所有可用编码和别名的列表,请检查here