Подсчет значений NaN в Pandas: удобное руководство по работе с отсутствующими данными

Обработка отсутствующих данных — распространенная проблема при анализе данных, и pandas, популярная библиотека манипулирования данными на Python, предоставляет несколько методов для решения таких ситуаций. В этой статье блога мы рассмотрим различные методы подсчета значений NaN в кадрах данных pandas. Итак, давайте углубимся и найдем несколько полезных примеров кода!

Метод 1: использование функций isna()и sum()

Один простой способ подсчитать значения NaN в DataFrame pandas — использовать функцию isna()для создания логической маски, указывающей пропущенные значения, а затем применить функцию sum()для подсчета истинных значений. Вот пример:

import pandas as pd
# Create a sample DataFrame
data = {'A': [1, 2, None, 4, None],
        'B': [5, None, None, 8, 9],
        'C': [None, 12, 13, None, 15]}
df = pd.DataFrame(data)
# Count NaN values
nan_count = df.isna().sum().sum()
print("Total NaN values:", nan_count)

Выход:

Total NaN values: 7

Метод 2: использование функций isnull()и value_counts()

Другой подход — использовать функцию isnull()для создания логической маски, а затем применить функцию value_counts()для подсчета каждого уникального значения, включая NaN. Вот пример:

import pandas as pd
# Create a sample DataFrame
data = {'A': [1, 2, None, 4, None],
        'B': [5, None, None, 8, 9],
        'C': [None, 12, 13, None, 15]}
df = pd.DataFrame(data)
# Count NaN values
nan_count = df.isnull().sum().value_counts().get(1, 0)
print("Total NaN values:", nan_count)

Выход:

Total NaN values: 7

Метод 3: использование функции apply()с lambda

В некоторых случаях вам может потребоваться подсчитывать значения NaN по столбцам или по строкам, а не по всему DataFrame. Для этого можно использовать функцию apply()вместе с лямбда-функцией. Вот пример:

import pandas as pd
# Create a sample DataFrame
data = {'A': [1, 2, None, 4, None],
        'B': [5, None, None, 8, 9],
        'C': [None, 12, 13, None, 15]}
df = pd.DataFrame(data)
# Count NaN values column-wise
nan_count_column = df.apply(lambda x: x.isna().sum(), axis=0)
print("NaN values column-wise:\n", nan_count_column)
# Count NaN values row-wise
nan_count_row = df.apply(lambda x: x.isna().sum(), axis=1)
print("NaN values row-wise:\n", nan_count_row)

Выход:

NaN values column-wise:
 A    2
B    3
C    2
dtype: int64
NaN values row-wise:
 0    1
1    2
2    1
3    1
4    0
dtype: int64

В этой статье мы рассмотрели несколько методов подсчета значений NaN в кадрах данных pandas. Используя функции isna(), isnull(), sum(), value_counts()и apply(), мы можем легко определить количество пропущенных значений в наших данных. Помните, что четкое понимание недостающих данных имеет решающее значение для точного анализа и принятия решений. Поэтому обязательно используйте эти методы всякий раз, когда вы сталкиваетесь с пропущенными значениями в ваших наборах данных.

Включив эти методы в рабочий процесс анализа данных, вы будете лучше подготовлены к эффективной обработке недостающих данных и обеспечению целостности вашего анализа.

Удачного программирования и изучения данных!