У меня есть данные, в которых я хочу найти число NaN
, так что, если оно меньше некоторого порога, я опущу эти столбцы. Я посмотрел, но не смог найти никакой функции для этого. есть value_counts
, но это будет медленно для меня, потому что большинство значений различны, и я хочу NaN
только подсчет .
464
df
вы можете использоватьdf.isnull().sum().sum()
.sum(axis=0)
что является поведением по умолчанию. А чтобы получить rowsums,.sum(axis=1)
.df.isnull().values.sum()
df['column_name'].isna().sum()
также работает, если кому-то интересно.Вы можете вычесть общую длину из числа значений, отличных от нан:
Вы должны рассчитать это на ваших данных. Для малых серий скорость возросла в 3 раза по сравнению с
isnull
решением.источник
isnull
уже в два раза быстрее.Предположим
df
, это DataFrame для панд.Затем,
Это даст количество значений NaN в каждом столбце.
Если вам нужно, значения NaN в каждой строке,
источник
Основываясь на ответе с наибольшим количеством голосов, мы можем легко определить функцию, которая дает нам информационный кадр для предварительного просмотра пропущенных значений и% пропущенных значений в каждом столбце:
источник
Так как панды 0.14.1 мое предложение здесь , чтобы иметь ключевое слово аргумент в методе value_counts было реализовано:
источник
если его просто считать значения нан в столбце панд здесь это быстрый способ
источник
Если вы используете ноутбук Jupyter, как насчет ....
или
или есть где-нибудь NaNs в данных, если да, то где?
источник
Ниже будут напечатаны все столбцы Nan в порядке убывания.
или
Ниже будут напечатаны первые 15 нан столбцов в порядке убывания.
источник
Вы можете использовать следующую функцию, которая даст вам вывод в Dataframe
Просто скопируйте и вставьте следующую функцию и вызовите ее, передав ваш панду Dataframe
Вывод
Если вы хотите сохранить простоту, вы можете использовать следующую функцию, чтобы получить пропущенные значения в%
источник
Чтобы посчитать нули:
Для подсчета NaN:
или
источник
Пожалуйста, используйте ниже для определенного количества столбцов
источник
Вы можете использовать метод value_counts и вывести значения np.nan
источник
s.value_counts(dropna = False)
Это сделает свое дело.
источник
Вот код для подсчета
Null
значений в столбце:источник
В июле 2017 года есть хорошая статья о Dzone, в которой подробно описываются различные способы суммирования значений NaN. Проверьте это здесь .
Статья, которую я привел, предоставляет дополнительную ценность: (1) показывает способ подсчета и отображения количества NaN для каждого столбца, чтобы можно было легко решить, следует ли отбрасывать эти столбцы, и (2) продемонстрировать способ выбора этих строк в конкретные, которые имеют NaN, так что они могут быть выборочно отброшены или вменены.
Вот быстрый пример, демонстрирующий полезность этого подхода - с несколькими столбцами, возможно, его полезность не очевидна, но я обнаружил, что он полезен для больших фреймов данных.
источник
Еще один простой вариант, который еще не предложен - просто подсчитать NaN, - это добавить в форму, чтобы возвращать количество строк с NaN.
источник
df.isnull (). sum () даст сумму пропущенных значений по столбцам.
Если вы хотите узнать сумму пропущенных значений в определенном столбце, то следующий код будет работать df.column.isnull (). Sum ()
источник
основанный на ответе, который был дан и некоторые улучшения, это мой подход
источник
df.apply(lambda x: x.value_counts(dropna=False)[np.nan]/x.size*100)
В случае, если вам нужно получить количество не-NA (не None) и NA (None) в разных группах, извлеченных группой:
Это возвращает количество не-NA, NA и общее количество записей на группу.
источник
Использовал решение, предложенное @sushmit в моем коде.
Возможное изменение того же самого также может быть
Преимущество этого состоит в том, что он возвращает результат для каждого из столбцов в df впредь.
источник
Дает в качестве вывода:
источник
Предположим, вы хотите получить количество пропущенных значений (NaN) в столбце (серии), известном как цена, в кадре данных, называемом обзорами.
Чтобы получить пропущенные значения с n_missing_prices в качестве переменной, просто выполните
сумма является ключевым методом здесь, пытался использовать счетчик, прежде чем я понял, сумма является правильным методом для использования в этом контексте
источник
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.count.html#pandas.Series.count
Возвращает количество не-NA / нулевых наблюдений в Серии
источник
Для вашей задачи вы можете использовать pandas.DataFrame.dropna ( https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html ):
С помощью параметра thresh вы можете объявить максимальное количество значений NaN для всех столбцов в DataFrame.
Выводы кода:
источник