python - Spyder,变量浏览器,xpt
问题描述
我是从 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)
但是,当我使用变量资源管理器查看文件时,所有字符列都显示为空白。
我尝试将其作为 sas 数据集而不是传输文件读取并将其导入 Python,但遇到了同样的问题。
我还尝试在包含字符列的 python 中创建一个数据框,并且它在变量资源管理器中正确显示。
有什么建议吗?
提前致谢。
解决方案
Y 列是一列二进制字符串。您必须先对其进行解码。变量资源管理器无法猜测正确的编码,并且显然不显示二进制字符串。如果您不知道编码,您将不得不猜测。试着df['utf8']=df.Y.str.decode('utf8')
看看这些信息是否有意义。
正如您所指出的,可以在导入函数中指定编码:
df = pd.read_sas(r'C:\mypath\myxpt.xpt', encoding='utf8')
作为旁注,您应该始终了解并最好明确使用的编码,以避免严重的麻烦。
有关所有可用编码和别名的列表,请查看此处。
推荐阅读
- python - 重塑 Pandas 数据框,其中包含一列中的所有年份和跨多列分隔的月份
- sql - 从 SQL Server 文本列中编辑患者姓名
- c++ - 重载成员函数以接收分配的值?
- mongodb - 您如何将解释与聚合和集群一起使用?
- html - 如何使用引导程序创建标头
- android - 使用字体图标的自定义文本视图的可访问性
- facebook-graph-api - 已弃用的 Facebook Places Search API for Web 的替代方案
- javascript - 有没有办法避免这种无限循环
- python - 如何读取文件的原始数据?
- javascript - 如何在反应中对嵌套对象使用扩展运算符?