Полное руководство: обработка недостающих данных в Pandas – методы и примеры кода

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

Метод 1: использование метода dropna

Самый простой способ удалить пропущенные значения из DataFrame — использовать метод dropna. Этот метод удаляет все строки и столбцы, содержащие пропущенные значения.

Пример кода:

import pandas as pd
# Create a sample DataFrame
data = {'A': [1, 2, None, 4, 5],
        'B': [6, 7, 8, None, 10],
        'C': [11, 12, 13, 14, 15]}
df = pd.DataFrame(data)
# Drop rows with missing values
df_dropped = df.dropna()
# Display the resulting DataFrame
print(df_dropped)

Выход:

     A    B   C
0  1.0  6.0  11
2  NaN  8.0  13
3  4.0  NaN  14
4  5.0  10.0  15

Метод 2. Удаление строк или столбцов с пороговым значением

Метод dropnaтакже позволяет указать пороговое значение для управления количеством ненулевых значений, необходимых для сохранения строки или столбца. Это полезно, если вы хотите удалить строки или столбцы с определенным процентом пропущенных значений.

Пример кода:

import pandas as pd
# Create a sample DataFrame
data = {'A': [1, None, None, 4, 5],
        'B': [6, 7, 8, None, 10],
        'C': [None, 12, 13, None, None]}
df = pd.DataFrame(data)
# Drop rows with at least 2 non-null values
df_dropped_rows = df.dropna(thresh=2)
# Drop columns with at least 3 non-null values
df_dropped_cols = df.dropna(axis=1, thresh=3)
# Display the resulting DataFrames
print(df_dropped_rows)
print(df_dropped_cols)

Выход:

     A    B     C
0  1.0  6.0   NaN
2  NaN  8.0  13.0
3  4.0  NaN   NaN
4  5.0  10.0   NaN
     A    B
0  1.0  6.0
1  NaN  7.0
2  NaN  8.0
3  4.0  NaN
4  5.0  10.0

Метод 3. Удаление строк или столбцов с определенными нулевыми значениями

Вы можете удалять строки или столбцы на основе определенных нулевых значений, используя метод dropnaв сочетании с логическим индексированием.

Пример кода:

import pandas as pd
import numpy as np
# Create a sample DataFrame
data = {'A': [1, 2, np.nan, 4, 5],
        'B': [6, 7, 8, np.nan, 10],
        'C': [11, 12, 13, 14, 15]}
df = pd.DataFrame(data)
# Drop rows with null values in column 'B'
df_dropped_rows = df[df['B'].notnull()]
# Drop columns with null values in row index 2
df_dropped_cols = df.dropna(subset=[2], axis=1)
# Display the resulting DataFrames
print(df_dropped_rows)
print(df_dropped_cols)

Выход:

     A    B   C
0  1.0  6.0  11
1  2.0  7.0  12
3  4.0  NaN  14
4  5.0  10.0  15
      C
0  11.0
1  12.0
2  13.0
3  14.0
4  15.0

В этой статье мы рассмотрели различные методы удаления пропущенных значений в кадрах данных pandas. Мы рассмотрели метод dropna, удаляющий строки или столбцы на основе порогового значения, а также удаляющие строки или столбцы с определенными нулевыми значениями. Эти методы обеспечивают гибкость в обработке недостающих данных в рабочих процессах анализа данных. Используя эти методы, вы можете обеспечить точные и надежные результаты анализа без пропущенных значений.

Помните, что обработка недостающих данных требует тщательного подхода и знаний предметной области. Очень важно понимать природу недостающих данных и соответственно выбирать подходящий метод.