Spyder, исследователь переменных, xpt
Я прихожу на Python с опытом SAS.
Я импортировал транспортный файл 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, содержащий символьные столбцы, и это правильно отображается в проводнике переменных.
Любые предложения, что идет не так?
Заранее спасибо.
1 ответ
Столбец Y является столбцом двоичных строк. Вы должны сначала расшифровать его. Проводник переменных не может угадать правильную кодировку и, по-видимому, не показывает двоичные строки. Если вы не знаете кодировку, вам придется угадывать. Пытаться df['utf8']=df.Y.str.decode('utf8')
и посмотрим, имеет ли информация смысл.
Как вы заметили, в функции импорта можно указать кодировку:
df = pd.read_sas(r'C:\mypath\myxpt.xpt', encoding='utf8')
Как примечание, вы всегда должны быть осведомлены и желательно четко указывать используемые кодировки, чтобы избежать серьезных головных болей.
Список всех доступных кодировок и псевдонимов смотрите здесь.