Полярные поля отменяют выбор/фильтруют столбцы только с отсутствующими значениямиPython

Программы на Python
Anonymous
 Полярные поля отменяют выбор/фильтруют столбцы только с отсутствующими значениями

Сообщение Anonymous »

Я хочу применить лямбда-функцию ко всем столбцам pl.Date, которая заменяет дату '0001-01-01' на нулевую.

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

replace_func = lambda date: None if date == datetime.date(1,1,1) else date
df.select(pl.col(pl.Date).map_elements(replace_func))
Это отлично работает для столбцов, в которых отсутствует хотя бы одна дата/значение (например, «A»), однако не работает для столбцов только со значениями Null/None. Эти столбцы со всеми нулевыми значениями нельзя просто удалить, поскольку они понадобятся/заполнятся позже. Я пытаюсь найти способ отфильтровать это, прежде чем использовать apply-lambda
Пример данных

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

import polars as pl
import datetime
replace_func = lambda date: None if date == datetime.date(1,1,1)  else date

df = pl.DataFrame({'A':[datetime.date(2023,3,3),datetime.date(1,1,1),None],
'B':[1,1,3],
'C':[None,None,None]
})

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

shape: (3, 3)
┌────────────┬─────┬──────┐
│ A          ┆ B   ┆ C    │
│ ---        ┆ --- ┆ ---  │
│ date       ┆ i64 ┆ null │
╞════════════╪═════╪══════╡
│ 2023-03-03 ┆ 1   ┆ null │
│ 0001-01-01 ┆ 1   ┆ null │
│ null       ┆ 3   ┆ null │
└────────────┴─────┴──────┘
Я пробовал это (ниже), но не смог понять.

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

df.select(pl.col(pl.Date).map_elements(replace_func))
Это приводит к ошибке AttributeError: объект DataFrame не имеет атрибута _pyexpr


Подробнее здесь: https://stackoverflow.com/questions/765 ... ing-values

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