Spyder、变量浏览器、xpt
Spyder, variable explorer, 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)
screenshot showing print of dataframe
但是,当我使用变量资源管理器查看文件时,所有字符列都显示为空白。
Screenshot showing data frame viewed through Variable explorer
我试过将其作为 sas 数据集而不是传输文件读取并将其导入 Python,但遇到了同样的问题。
我还尝试在 python 中创建一个包含字符列的数据框,这在变量资源管理器中正确显示。
有什么问题的建议吗?
提前致谢。
Y 列是二进制字符串列。你必须先解码它。变量资源管理器无法猜测正确的编码并且显然不显示二进制字符串。如果您不知道编码,您将不得不猜测。尝试 df['utf8']=df.Y.str.decode('utf8')
看看信息是否有意义。
如您所见,可以在导入函数中指定编码:
df = pd.read_sas(r'C:\mypath\myxpt.xpt', encoding='utf8')
作为旁注,您应该始终了解并最好明确使用的编码以避免严重的麻烦。
有关所有可用编码和别名的列表,请检查 here。
我来自 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 中创建一个包含字符列的数据框,这在变量资源管理器中正确显示。
有什么问题的建议吗?
提前致谢。
Y 列是二进制字符串列。你必须先解码它。变量资源管理器无法猜测正确的编码并且显然不显示二进制字符串。如果您不知道编码,您将不得不猜测。尝试 df['utf8']=df.Y.str.decode('utf8')
看看信息是否有意义。
如您所见,可以在导入函数中指定编码:
df = pd.read_sas(r'C:\mypath\myxpt.xpt', encoding='utf8')
作为旁注,您应该始终了解并最好明确使用的编码以避免严重的麻烦。
有关所有可用编码和别名的列表,请检查 here。