Очистка данных — важный этап любого проекта по анализу данных. Часто мы сталкиваемся с наборами данных с отсутствующими значениями, с которыми необходимо обращаться соответствующим образом. В этой статье мы рассмотрим различные методы фильтрации DataFrame Pandas и сохранения только тех строк, которые имеют как минимум два ненулевых (не NA) значения. Мы рассмотрим практические примеры кода, используя разговорный язык, чтобы облегчить понимание процесса.
Метод 1: использование метода dropna
Один простой подход — использовать метод dropna
, предоставляемый Pandas. Указав для параметра thresh
значение 2, мы можем удалить строки с менее чем двумя значениями, отличными от NA.
import pandas as pd
# Create a sample DataFrame
data = {'A': [1, 2, None, 4, None],
'B': [None, 6, 7, None, 9],
'C': [10, None, 12, 13, 14]}
df = pd.DataFrame(data)
# Drop rows with at least two non-NA values
df_filtered = df.dropna(thresh=2)
Метод 2: использование логического индексирования.
Другой подход заключается в использовании логического индексирования для фильтрации строк на основе количества значений, отличных от NA. Мы можем использовать метод notna
для создания логической маски, а затем подсчитать количество ненулевых значений в строке с помощью метода sum
.
# Create a boolean mask for non-NA values
mask = df.notna()
# Filter rows with at least two non-NA values
df_filtered = df[mask.sum(axis=1) >= 2]
Метод 3: использование метода apply
Мы также можем использовать метод apply
для применения пользовательской функции к каждой строке DataFrame. Внутри функции мы можем подсчитать количество значений, отличных от NA, и вернуть логическое значение, указывающее, соответствует ли строка нашим критериям.
# Define a function to check the number of non-NA values in a row
def check_non_na(row):
return row.notna().sum() >= 2
# Apply the function to filter rows
df_filtered = df[df.apply(check_non_na, axis=1)]
В этой статье мы рассмотрели три различных подхода к фильтрации DataFrame Pandas и сохранению только строк, по крайней мере, с двумя значениями, отличными от NA. Для достижения этой цели мы использовали метод dropna
, логическое индексирование и метод apply
. Освоив эти методы, вы сможете эффективно очищать наборы данных и обеспечивать точность анализа.