Обработка отсутствующих данных — распространенная проблема при анализе данных, и 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()
, мы можем легко определить количество пропущенных значений в наших данных. Помните, что четкое понимание недостающих данных имеет решающее значение для точного анализа и принятия решений. Поэтому обязательно используйте эти методы всякий раз, когда вы сталкиваетесь с пропущенными значениями в ваших наборах данных.
Включив эти методы в рабочий процесс анализа данных, вы будете лучше подготовлены к эффективной обработке недостающих данных и обеспечению целостности вашего анализа.
Удачного программирования и изучения данных!