Как найти нет. нулей в каждом столбце полярного кадра данных?

В пандах можно сделать:

import pandas as pd

d = {"foo":[1,2,3, None], "bar":[4,None, None, 6]}
df_pandas = pd.DataFrame.from_dict(d)
dict(df_pandas.isnull().sum())

[вне]:

{'foo': 1, 'bar': 2}

В полярах можно сделать то же самое, перебирая столбцы:

import polars as pl

d = {"foo":[1,2,3, None], "bar":[4,None, None, 6]}
df_polars = pl.from_dict(d)

{col:df_polars[col].is_null().sum() for col in df_polars.columns}

Циклическое перебор столбцов в полярах особенно болезненно при использовании LazyFrame, тогда .collect() нужно выполнять по частям, чтобы выполнить агрегацию.

Есть ли способ найти нет. нулей в каждом столбце в фрейме данных polars без перебора каждого столбца?

Может df_polars.collect().null_count()? Как это работает с LazyFrame?

alvas 10.05.2023 16:36

В любом случае, чтобы ускорить его, особенно. когда df_polars.collect() не лучший вариант для большого набора данных.

alvas 10.05.2023 16:40
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
2
81
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

df.select(pl.all().is_null().sum())

Однако, если вам действительно нравится вывод dict, вы можете легко его получить...

df.select(pl.all().is_null().sum()).to_dicts()[0]

Это работает так: внутри select мы начинаем с pl.all(), что означает все столбцы, а затем, как и в версии для панд, мы применяем is_null, что возвращает True/False. Из этого мы цепляем sum, который превращает Trues в 1 и дает вам количество нулей в каждом столбце.

Также есть выделенный null_count(), так что вам не нужно связывать is_null().sum(), спасибо @jqurious за этот совет.

Прохладный! И сбор идет после выбора. Потрясающий!

alvas 10.05.2023 17:07

Также есть специальный .null_count

jqurious 10.05.2023 17:25

Другие вопросы по теме