Почему я не могу прочитать пропущенные значения даты и времени? - PullRequest
1 голос
/ 07 октября 2019

Я хочу прочитать переменную типа даты из SPSS в кадре данных Python. Если дата отсутствует, я получаю сообщение об ошибке и не знаю, как это исправить? Как отсутствующее числовое значение закодировано как NaN, я хотел бы что-то подобное для отсутствующих переменных даты.

# Read in SPSS Database
with sRW.SavReaderNp('C:/Users/Sam/Downloads/File.sav') as reader:
record = reader.all()
SPSS_df = pd.DataFrame(record)

Ошибка:

Трассировка (последний последний вызов): файл "C: /Users/Sam/Python/Program.py", строка 17, в SPSS_df =pd.DataFrame (запись)

Файл "C: \ Users \ Sam \ Python \ venv \ lib \ site-packages \ pandas \ core \ frame.py", строка 436, в init mgr = init_dict (данные, индекс, столбцы, dtype = dtype)

Файл "C: \ Users \ Sam \ Python \ venv \ lib \ site-packages \ pandas \ core \ internals \ construction.py"строка 257, в init_dict возвращает arrays_to_mgr (массивы, имена данных, индекс, столбцы, dtype = dtype)

Файл "C: \ Users \ Sam \ Python \ venv \ lib \ site-packages \ pandas \ core \"internals \ construction.py ", строка 82, в массивах arrays_to_mgr = _homogenize (массивы, индекс, dtype)

Файл" C: \ Users \ Sam \ Python \ venv \ lib \ site-packages \ pandas \ core "\ internals \ construction.py ", строка 323, в _homogenize val, index, dtype = dtype, copy = False, повысить_cast_failure = False

Файл" C: \ Users \ Sam \ Python \ venv \ lib \ site "-packages \ pandas \ core \ internals \ construction.py ", строка 664, в Санитиze_array subarr = _try_cast (data, dtype, copy, повысить_cast_failure)

Файл "C: \ Users \ Sam \ Python \ venv \ lib \ site-packages \ pandas \ core \ internals \ construction.py", строка784, в _try_cast subarr = Maybe_cast_to_datetime (arr, dtype)

Файл "C: \ Users \ Sam \ Python \ venv \ lib \ site-packages \ pandas \ core \ dtypes \ cast.py", строка 1100, в Maybe_cast_to_datetime значение = tslibs.conversion.ensure_datetime64ns (значение)

Файл "pandas_libs \ tslibs \ converter.pyx", строка 123, в pandas._libs.tslibs.conversion.ensure_datetime64ns

* 10«pandas_libs \ tslibs \ np_datetime.pyx», строка 118, в pandas._libs.tslibs.np_datetime.check_dts_bounds pandas._libs.tslibs.np_datetime.OutOfBoundsDatetime: отметка времени 00:00 * наносекунды: 1: 01-01: отметка времени 1: 01-01: 11027 *

print (Record) показывает следующее, фактический набор данных больше, но последняя строка по существу там, где на самом деле возникает проблема.

(b'86600   ', '2019-08-05T00:00:00.000000')
(b'86600   ', '2019-08-05T00:00:00.000000')
(b'86600   ', '0001-01-01T00:00:00.000000')
...