Как запретить Pandas конвертировать datetime в datetime64Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как запретить Pandas конвертировать datetime в datetime64

Сообщение Anonymous »

Нужно
Я пытаюсь экспортировать фрейм данных в файл Parquet, который позже будет использован в конвейере чем-то, кроме Python или Pandas. (Фабрика данных Azure)
Когда я принимаю файл Parquet позже в потоке, он не может распознать datetime64[ns]. Я бы предпочел просто использовать «ванильный» Python datetime.datetime.
Проблема
Но я не могу этого сделать. Проблема в том, что Pandas принудительно переводит любой объект типа datetime в datetime64[ns], как только он возвращается в кадр данных или серию.
Небольшой примерНапример, предположим, что набор данных радужной оболочки глаза имеет столбец «метка времени»:

Код: Выделить всё

>>> df.head()
sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)   class                  timestamp
0                5.1               3.5                1.4               0.2  setosa 2021-02-19 15:07:24.719272
1                4.9               3.0                1.4               0.2  setosa 2021-02-19 15:07:24.719272
2                4.7               3.2                1.3               0.2  setosa 2021-02-19 15:07:24.719272
3                4.6               3.1                1.5               0.2  setosa 2021-02-19 15:07:24.719272
4                5.0               3.6                1.4               0.2  setosa 2021-02-19 15:07:24.719272

>>> df.dtypes
sepal length (cm)           float64
sepal width (cm)            float64
petal length (cm)           float64
petal width (cm)            float64
class                      category
timestamp            datetime64[ns]
dtype: object
Я могу преобразовать значение в «обычную дату и время Python»:

Код: Выделить всё

>>> df.timestamp[1]
Timestamp('2021-02-19 15:07:24.719272')
>>> type(df.timestamp[1])


>>> df.timestamp[1].to_pydatetime()
datetime.datetime(2021, 2, 19, 15, 7, 24, 719272)
>>> type(df.timestamp[1].to_pydatetime())

Но я не могу «сохранить» его в этом типе, когда конвертирую весь столбец/серию:

Код: Выделить всё

>>> df['ts2'] = df.timestamp.apply(lambda x: x.to_pydatetime())
>>> df.dtypes
sepal length (cm)           float64
sepal width (cm)            float64
petal length (cm)           float64
petal width (cm)            float64
class                      category
timestamp            datetime64[ns]
ts2                  datetime64[ns]
Возможные решения
Я посмотрел, можно ли что-нибудь сделать, чтобы «заглушить» столбец фрейма данных и сделать его дату и время менее точными. Но я ничего не вижу. Я также не вижу возможности указать типы данных столбца при экспорте с помощью метода df.to_parquet().
Есть ли способ создать простой столбец Python datetime.datetime (а не столбец Numpy/Pandas datetime65[ns]) в кадре данных Pandas?

Подробнее здесь: https://stackoverflow.com/questions/662 ... datetime64
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Преобразование данных datetime64 в datetime в python
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Столбец DTYPE возвращающий DateTime64 [NS] сравнивается с телом DateTime DTYPE
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Проблема: Pandas: разрезание столбца datetime64[ns] возвращает список 19-значных целых чисел.
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Pandas, как передать dtype datetime64 в запросе, не вызывая предупреждения в будущем
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Pandas, как передать dtype datetime64 в запросе, не вызывая предупреждения в будущем
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»