Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Spyder、变量资源管理器、xpt_Python_Pandas_Sas_Spyder - Fatal编程技术网

Python Spyder、变量资源管理器、xpt

Python Spyder、变量资源管理器、xpt,python,pandas,sas,spyder,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) 但是,当我使用变量资源管

我是从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\u sas(r'C:\mypath\myxpt.xpt',encoding='utf8')

作为旁注,您应该始终了解并最好明确使用的编码,以避免出现重大问题


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

列Y是一列二进制字符串。我相信你必须先破译它。变量资源管理器无法猜测正确的编码,并且明显没有显示二进制字符串。如果你不知道编码,你将不得不猜测。尝试
df['utf8']=df.Y.str.decode('utf8')
并查看变量资源管理器中的信息是否有意义。这可能会有帮助。这非常有效,感谢您的快速响应。基于您的回答,我发现我可以在导入文件时指定编码='utf8',这也解决了这个问题。太好了!我也会用你所做的写一个完整的答案。