Приведение столбца строки к pl.DateTime не сохраняет информацию о часовом поясе при преобразовании в строку.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Приведение столбца строки к pl.DateTime не сохраняет информацию о часовом поясе при преобразовании в строку.

Сообщение Anonymous »

Polars версии 1.17.11
У меня есть объект json следующей структуры:

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

json_obj = [
{"timestamp": "2024-10-01T21:23:23Z", "value": 31},
{"timestamp": "2024-10-01T23:44:11.124Z", "value": -453.2}
]
и я хочу создать DataFrame, в котором первый столбец имеет тип данных pl.Datetime, включая часовой пояс, а второй столбец – pl.Float64. Но создание DataFrame со схемой {"timestamp": pl.Datetime, "value": pl.Float64 дает мне ComputeError, и если я создаю DataFrame без схемы, затем приведу временную метку столбец в pl.Datetime Я теряю информацию о часовом поясе.
Когда я создаю DataFrame:

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

json_obj = [
{"timestamp": "2024-10-01T21:23:23Z", "value": 31},
{"timestamp": "2024-10-01T23:44:11.124Z", "value": -453.2}
]
df = pl.DataFrame(json_obj)
print(df)
Вывод:

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

shape: (2, 2)
┌──────────────────────────┬────────┐
│ timestamp                ┆ value  │
│ ---                      ┆ ---    │
│ str                      ┆ f64    │
╞══════════════════════════╪════════╡
│ 2024-10-01T21:23:23Z     ┆ 31.0   │
│ 2024-10-01T23:44:11.124Z ┆ -453.2 │
└──────────────────────────┴────────┘
Обратите внимание, что второй столбец автоматически преобразуется к f64, несмотря на то, что первое значение является целым числом, и это хорошо. Но я хочу изменить тип первого столбца на дату и время с учетом часового пояса:

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

df = df.cast({"timestamp": pl.Datetime})
print(df)
Какие выходные данные:

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

shape: (2, 2)
┌─────────────────────────┬────────┐
│ timestamp               ┆ value  │
│ ---                     ┆ ---    │
│ datetime[μs]            ┆ f64    │
╞═════════════════════════╪════════╡
│ 2024-10-01 21:23:23     ┆ 31.0   │
│ 2024-10-01 23:44:11.124 ┆ -453.2 │
└─────────────────────────┴────────┘
Первый столбец приводится к datetime[µs], но при этом удаляется информация о часовом поясе.
Однако, если я воссоздаю то же самое dataframe, но на этот раз замените столбец временной метки строковой операцией:

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

json_obj = [
{"timestamp": "2024-10-01T21:23:23Z", "value": 31},
{"timestamp": "2024-10-01T23:44:11.124Z", "value": -453.2}
]
df = pl.DataFrame(json_obj)
df = df.with_columns(pl.col("timestamp").str.to_datetime())
print(df)
Я получаю следующий результат:

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

shape: (2, 2)
┌─────────────────────────────┬────────┐
│ timestamp                   ┆ value  │
│ ---                         ┆ ---    │
│ datetime[μs, UTC]           ┆ f64    │
╞═════════════════════════════╪════════╡
│ 2024-10-01 21:23:23 UTC     ┆ 31.0   │
│ 2024-10-01 23:44:11.124 UTC ┆ -453.2 │
└─────────────────────────────┴────────┘
Теперь у меня есть временная метка типа datetime[µs, UTC] без потери информации о часовом поясе.
Может ли кто-нибудь объяснить, почему кастинг ведет себя по-другому?

Подробнее здесь: https://stackoverflow.com/questions/792 ... n-while-co
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Сохранять информацию о часовом поясе из Date() при вызове Date().toString() в Javascript
    Anonymous » » в форуме Javascript
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Создание DateTime в определенном часовом поясе в С#
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Осведомленные объекты datetime выводят разные смещения UTC в одном часовом поясе.
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Осведомленные объекты datetime выводят разные смещения UTC в одном часовом поясе
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как создать Python datetime в определенном часовом поясе?
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

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