Как подсчитать NaN-вступления в столбце в Pandas Dataframe
-
метод
isna()
для подсчетаNaN
в одной или нескольких колонках -
Вычитаем общую длину из счета
NaN
для подсчетаNaN
вхождений -
метод
df.isnull().sum()
для подсчетаNaN
вхождений -
Посчитайте
NaN
происшествия во всем PandasDataFrame
Мы познакомим вас с методами подсчета NaN
вхождений в колонку в Pandas dataframe
. У нас есть много вариантов, в том числе метод isna()
для одной или нескольких колонок, путем вычитания общей длины из числа NaN
вхождений, с помощью метода value_counts
и с помощью метода df.isnull().sum()
.
Также мы введем метод для вычисления общего числа NaN
вхождений во всем Pandas DataFrame
.
метод isna()
для подсчета NaN
в одной или нескольких колонках
Мы можем использовать метод insna()
(pandas versions > 0.21.0), а затем суммировать для подсчета NaN
вхождений. Для одного столбца мы сделаем следующее:
import pandas as pd
s = pd.Series([
1,2,3, np.nan, np.nan])
s.isna().sum()
# or s.isnull().sum() for older pandas versions
Вывод:
2
Для нескольких столбцов это также работает:
import pandas as pd
df = pd.DataFrame({
'a':[1,2,np.nan],
'b':[np.nan,1,np.nan]})
df.isna().sum()
Вывод:
a 1
b 2
dtype: int64
Вычитаем общую длину из счета NaN
для подсчета NaN
вхождений
Мы можем получить количество NaN
вхождений в каждом столбце, вычитая количество
non-Nan
вхождений из длины DataFrame
:
import pandas as pd
df = pd.DataFrame([
(1,2,None),
(None,4,None),
(5,None,7),
(5,None,None)],
columns=['a','b','d'],
index = ['A', 'B','C','D'])
print(df)
print(len(df)-df.count())
Вывод:
a b d
A 1.0 2.0 NaN
B NaN 4.0 NaN
C 5.0 NaN 7.0
D 5.0 NaN NaN
a 1
b 2
d 3
dtype: int64
метод df.isnull().sum()
для подсчета NaN
вхождений
Получить количество NaN
вхождений в каждую колонку можно с помощью метода df.isnull().sum()
. Если мы передали axis = 0
в методе sum
, то получим количество NaN
вхождений в каждом столбце. Если нам нужны NaN
вхождения в каждой строке, то установим axis=1
.
Рассмотрим следующий код:
import pandas as pd
df = pd.DataFrame(
[(1,2,None),
(None,4,None),
(5,None,7),
(5,None,None)],
columns=['a','b','d'],
index = ['A', 'B','C','D'])
print('NaN occurrences in Columns:')
print(df.isnull().sum(axis = 0))
print('NaN occurrences in Rows:')
print(df.isnull().sum(axis = 1))
Вывод:
NaN occurrences in Columns:
a 1
b 2
d 3
dtype: int64
NaN occurrences in Rows:
A 1
B 2
C 1
D 2
dtype: int64
Посчитайте NaN
происшествия во всем Pandas DataFrame
Чтобы получить общее количество всех случаев Nan
в DataFrame
, мы связываем два метода .sum()
вместе:
import pandas as pd
df = pd.DataFrame(
[(1,2,None),
(None,4,None),
(5,None,7),
(5,None,None)],
columns=['a','b','d'],
index = ['A', 'B','C','D'])
print('NaN occurrences in DataFrame:')
print(df.isnull().sum().sum())
Вывод:
NaN occurrences in DataFrame:
6