Как использовать dropna в pandas для фильтрации данных? ✨

Метод dropna в библиотеке pandas используется для удаления строк или столбцов с пропущенными значениями из DataFrame.

Пример использования:

import pandas as pd

# Создание DataFrame с пропущенными значениями
data = {'A': [1, 2, None, 4],
        'B': [5, None, 7, 8],
        'C': [9, 10, 11, None]}
df = pd.DataFrame(data)

# Удаление строк с пропущенными значениями
df.dropna(inplace=True)

# Удаление столбцов с пропущенными значениями
df.dropna(axis=1, inplace=True)

# Вывод обновленного DataFrame
print(df)

Детальный ответ

Привет! Сегодня мы разберем, как работает метод dropna в библиотеке pandas. Этот метод используется для удаления строк или столбцов с отсутствующими значениями в данных. Давайте подробнее изучим его функционал.


dropna - это метод, который позволяет удалить строки или столбцы, содержащие пропущенные (NaN) значения в DataFrame. При вызове метода без аргументов, он будет удалять строки с хотя бы одним пропущенным значением.


Допустим, у нас есть следующий DataFrame:

        
import pandas as pd
import numpy as np

data = {'A': [1, 2, np.nan, 4],
        'B': [5, np.nan, 7, 8],
        'C': [9, 10, 11, np.nan]}

df = pd.DataFrame(data)
print(df)
        
    

Вывод:

    A    B     C
0  1.0  5.0   9.0
1  2.0  NaN  10.0
2  NaN  7.0  11.0
3  4.0  8.0   NaN


Если мы применим метод dropna без аргументов к нашему DataFrame, он удалит строки, содержащие хотя бы одно пропущенное значение:

        
df.dropna(inplace=True)
print(df)
        
    

Вывод:

     A    B    C
0  1.0  5.0  9.0


Ключевой аргумент inplace=True указывает, что изменения должны быть сделаны непосредственно в самом DataFrame. Если inplace не указано или равно False, то DataFrame будет возвращаться с примененными изменениями, но исходный DataFrame останется без изменений.


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

Например, давайте предположим, что у нас есть следующий DataFrame:

        
data = {'A': [1, 2, np.nan, np.nan],
        'B': [5, np.nan, 7, 8],
        'C': [np.nan, np.nan, np.nan, np.nan]}

df = pd.DataFrame(data)
print(df)
        
    

Вывод:

     A    B   C
0  1.0  5.0 NaN
1  2.0  NaN NaN
2  NaN  7.0 NaN
3  NaN  8.0 NaN


Если мы хотим удалить только столбцы, где все значения являются пропущенными, мы можем использовать аргумент how='all':

        
df.dropna(axis=1, how='all', inplace=True)
print(df)
        
    

Вывод:

     A    B
0  1.0  5.0
1  2.0  NaN
2  NaN  7.0
3  NaN  8.0


Аргумент axis=1 указывает, что мы хотим удалить столбцы. Если бы мы хотели удалить строки, мы использовали бы axis=0.


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

Посмотрим на следующий DataFrame:

        
data = {'A': [1, 2, np.nan, 4],
        'B': [5, np.nan, 7, 8],
        'C': [9, 10, 11, np.nan]}

df = pd.DataFrame(data)
print(df)
        
    

Вывод:

     A    B     C
0  1.0  5.0   9.0
1  2.0  NaN  10.0
2  NaN  7.0  11.0
3  4.0  8.0   NaN


Если мы хотим сохранить только строки, которые имеют как минимум 2 непропущенных значения, мы можем использовать аргумент thresh=2:

        
df.dropna(thresh=2, inplace=True)
print(df)
        
    

Вывод:

     A    B     C
0  1.0  5.0   9.0
3  4.0  8.0   NaN


Как видите, строки, у которых меньше 2 непропущенных значений, были удалены.


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

Видео по теме

Pandas Part 20 - The dropna() method

Python Панды | DropNa

ПРАКТИКА Pandas | NaN, Null | Работа с пропусками в Pandas | МАШИННОЕ ОБУЧЕНИЕ

Похожие статьи:

Как использовать dropna в pandas для фильтрации данных? ✨

🔧 Как переименовать столбец в pandas: простой гайд для начинающих