почему strptime возвращает наносекундную метку времени в зависимости от форматирования строки - PullRequest
0 голосов
/ 30 мая 2018

Упрощенная версия кода:

df.loc[df.loc['A'].notnull(), 'B'] = df.loc[df.loc['A'].notnull(), 'A'].map(
    lambda x: dt.datetime.strptime(x, '%m/%d/%Y'))

проблема :

Этот код заполнен столбец "B" с 19-значными целыми числами (я полагаю, наносекундыUnix time) вместо ожидаемого datetime или pandas Timestamp.

Фрейм данных считывался из csv, созданного при экспорте MSSQL Server.Формат даты в файле не имеет дополняемых нулей.Это не должно быть проблемой, но когда файл был переформатирован, столбец затем заполнился метками времени, как и ожидалось .

Мы нашли довольно простое решение, но я не могу найти какой-либодокументация, которая объясняет, почему strptime возвращает целое число, и я не могу воспроизвести это поведение, когда я запускаю его, вводя значения в консоли (или Jupyter).

Q1: что здесь происходит?

Q2: Может ли форматирование строк из MSSQL каким-то образом вызвать такое поведение?

Q3: Стоит ли просто посчитать наши благословения и перестать спрашивать, почему?

Я просто отмечу, что это было странное обстоятельство ирешение было найдено путем настройки других частей кода, я просто хотел бы понять, что происходит.

(python 2.7, pandas 0.18)

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