07 Июл 2023
1 мин
1087

Удаление строк в Pandas DataFrame на основе значения столбца

Часто при работе с данными в Python и библиотеке Pandas возникает необходимость удалить определенные строки из DataFrame на основе значения в определенном столбце.

Содержание

Часто при работе с данными в Python и библиотеке Pandas возникает необходимость удалить определенные строки из DataFrame на основе значения в определенном столбце. Например, предположим, что у нас есть следующий DataFrame:

import pandas as pd

data = {
    'A': ['foo', 'bar', 'baz', 'qux', 'quux'],
    'B': [1, 0, 2, 0, 3]
}

df = pd.DataFrame(data)

print(df)
     A  B
0  foo  1
1  bar  0
2  baz  2
3  qux  0
4  quux 3

Теперь предположим, что нам нужно удалить все строки, где значение в столбце ‘B’ равно 0.

Самый простой и эффективный способ сделать это — использовать метод DataFrame.loc[], который позволяет нам получить доступ к группе строк и столбцов по метке(ам). В нашем случае, мы хотим получить все строки, где значение в столбце ‘B’ не равно 0. Это можно сделать следующим образом:

df = df.loc[df['B'] != 0]

print(df)
     A  B
0  foo  1
2  baz  2
4  quux 3

Как видите, строки, где значение в столбце ‘B’ было равно 0, успешно удалены из DataFrame.

Важно отметить, что Pandas не изменяет исходный DataFrame «на месте». Вместо этого он возвращает новый DataFrame с удаленными строками. Если вы хотите изменить исходный DataFrame, вы должны присвоить результат обратно исходному DataFrame, как это было сделано в приведенном выше примере.

Добавить комментарий