Spyder, исследователь переменных, xpt - PullRequest
0 голосов
/ 19 ноября 2018

Я прихожу в 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 Ответ

0 голосов
/ 19 ноября 2018

Столбец Y - это столбец двоичных строк.Вы должны сначала расшифровать его.Проводник переменных не может угадать правильную кодировку и, по-видимому, не показывает двоичные строки.Если вы не знаете кодировку, вам придется угадывать.Попробуйте df['utf8']=df.Y.str.decode('utf8') и посмотрите, имеет ли информация смысл.

Как вы уже отметили, в функции импорта можно указать кодировку:

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

Как примечание, вы всегда должны знать и желательно четко указывать используемые кодировки, чтобы избежать серьезных головных болей.

Чтобы получить список всех доступных кодировок и псевдонимов, проверьте здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...