Почему мое значение возвращается как pl.Float32, а не как pl.Date?Python

Программы на Python
Ответить
Anonymous
 Почему мое значение возвращается как pl.Float32, а не как pl.Date?

Сообщение Anonymous »

У меня есть фрейм данных с клиентами и датами заказов. Даты заказа могут иметь значение pl.Date или значение NULL, но в настоящее время этот столбец содержит только значения NULL. Я хочу создать новый столбец «startdate_before_override», для которого установлено либо значение «order_date» той же строки, либо значение «startdate» (константа dtype pl.Date, объявленная в третьей строке).
Я попробовал сделать это с помощью шаблона «когда/то/иначе», добавив проверку на нули в качестве первого «когда» (редактировать: теперь я вижу, что эта проверка на самом деле не нужна, но это рядом суть моей проблемы).
Проблема, которую я пытаюсь решить, заключается в том, что значения, возвращаемые в startdate_before_override, — это pl.Float32, а не pl.Date

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

import polars as pl

startdate = pl.date(year=2023, month=1, day=1)

data = {"customer": ["Mike", "Jan"], "order_date": [None, None]}

df = pl.DataFrame(data)
(df
.with_columns(
pl
.when(pl.col("order_date").is_null())
.then(startdate)
.when(pl.col("order_date")>startdate)
.then(pl.col("order_date"))
.otherwise(startdate)
.alias("startdate_before_override"),
)
)
Результат не такой, как я ожидал:

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

shape: (2, 3)
┌──────────┬────────────┬───────────────────────────┐
│ customer ┆ order_date ┆ startdate_before_override │
│ ---      ┆ ---        ┆ ---                       │
│ str      ┆ f32        ┆ f32                       │ # 

Подробнее здесь: [url]https://stackoverflow.com/questions/76757496/why-is-my-value-returned-as-a-pl-float32-and-not-a-pl-date[/url]
Ответить

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

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

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

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

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