Как я могу сохранить тип данных столбца при использовании pandas.read_sas ()? - PullRequest
0 голосов
/ 24 июня 2018

Все типы столбцов преобразуются в с плавающей точкой (тип столбца не сохраняется) при чтении из этого файла SAS в кадр данных pandas.

Ниже приведен Pythonкод:

import os
import pandas as pd

data_dir = os.getcwd()
sas_file = os.path.join(data_dir, 'airline.sas7bdat')

iter_sas = pd.read_sas(sas_file, iterator=True, chunksize=1000)

for chunk in iter_sas:
    print(chunk.head())

Вывод следующего:

          YEAR      Y      W       R      L      K
0  1948.000888  1.214  0.243  0.1454  1.415  0.612
1  1949.000888  1.354  0.260  0.2181  1.384  0.559
2  1950.000011  1.569  0.278  0.3157  1.388  0.573
3  1951.000011  1.948  0.297  0.3940  1.550  0.564
4  1952.000000  2.265  0.310  0.3559  1.802  0.574

Как сохранить тип данных столбца при использовании pandas.read_sas()?

Ответы [ 2 ]

0 голосов
/ 24 июня 2018

Похоже, read_sas все еще имеет ту же ошибку, что и в другом вопросе.Первая переменная, YEAR, хранится с использованием только 4 байтов, а read_sas составляет числа для заполнения недостающих 4 байтов вместо заполнения их нулевыми байтами.

enter image description here

Либо найдите другой пакет, который на самом деле понимает структуру набора данных SAS, либо округлите значения или преобразуйте значения после их чтения.

0 голосов
/ 24 июня 2018

Как уже упоминалось в в этом ответе , вы должны сначала импортировать следующее

from sas7bdat import SAS7BDAT

и затем приведите ваш файл как

SAS7BDAT("airline.sas7bdat")

Затем вы можете преобразовать его во фрейм данных.

   YEAR      Y      W       R      L      K
0  1948.0  1.214  0.243  0.1454  1.415  0.612
1  1949.0  1.354  0.260  0.2181  1.384  0.559
2  1950.0  1.569  0.278  0.3157  1.388  0.573
3  1951.0  1.948  0.297  0.3940  1.550  0.564
4  1952.0  2.265  0.310  0.3559  1.802  0.574
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...