Как удалить строки в Pandas DataFrame на основе условия
Мы можем использовать следующий синтаксис для удаления строк в pandas DataFrame на основе условия:
Метод 1: удаление строк на основе одного условия
df = df[df.col1 > 8]
Метод 2: удаление строк на основе нескольких условий
df = df[(df.col1 > 8) & (df.col2 != 'A')]
Примечание.Мы также можем использовать функцию drop() для удаления строк из DataFrame, но эта функция оказалась намного медленнее, чем простое присвоение DataFrame отфильтрованной версии самого себя.
В следующих примерах показано, как использовать этот синтаксис на практике со следующими пандами DataFrame:
import pandas as pd #create DataFrame df = pd.DataFrame() #view DataFrame df team pos assists rebounds 0 A G 5 11 1 A G 7 8 2 A F 7 10 3 A F 9 6 4 B G 12 6 5 B G 9 5 6 B F 9 9 7 B F 4 12
Метод 1: удаление строк на основе одного условия
В следующем коде показано, как удалять строки в DataFrame на основе одного условия:
#drop rows where value in 'assists' column is less than or equal to 8 df = df[df.assists > 8] #view updated DataFrame df team pos assists rebounds 3 A F 9 6 4 B G 12 6 5 B G 9 5 6 B F 9 9
Любая строка, которая имела значение меньше или равное 8 в столбце «помощь», была удалена из DataFrame.
Метод 2: удаление строк на основе нескольких условий
В следующем коде показано, как удалять строки в DataFrame на основе нескольких условий:
#only keep rows where 'assists' is greater than 8 and rebounds is greater than 5 df = df[(df.assists > 8) & (df.rebounds > 5)] #view updated DataFrame df team pos assists rebounds 3 A F 9 6 4 B G 12 6 5 B G 9 5 6 B F 9 9
Единственные строки, которые мы сохранили в DataFrame, были те, в которых значение помощи было больше 8, а значение подбора больше 5.
Обратите внимание, что мы также можем использовать | оператор для применения фильтра «или»:
#only keep rows where 'assists' is greater than 8 or rebounds is greater than 10 df = df[(df.assists > 8) | (df.rebounds > 10)] #view updated DataFrame df team pos assists rebounds 0 A G 5 11 3 A F 9 6 4 B G 12 6 5 B G 9 5 6 B F 9 9 7 B F 4 12
Единственные строки, которые мы сохранили в DataFrame, были те, в которых значение помощи было больше 8 или значение подбора было больше 10.
Все строки, не соответствующие одному из этих условий, удалялись.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:
Как удалить только одну строку в CSV с помощью Python?
В этом уроке мы научимся удалять только одну строку в CSV с помощью Python. Мы будем использовать библиотеку Pandas. Pandas — библиотека с открытым исходным кодом для анализа данных; это одна из самых популярных библиотек Python для исследования данных и аналитической информации. Он включает в себя несколько функций для выполнения операций с наборами данных. Его можно комбинировать с другими библиотеками, такими как NumPy, для выполнения определенных функций с данными.
Мы будем использовать метод drop() для удаления строки из любого файла csv. В этом уроке мы проиллюстрируем три примера удаления строки из файла csv, используя тот же метод. К концу этого руководства вы познакомитесь с этой концепцией и сможете удалить строку из любого файла CSV.
Синтаксис
Это синтаксис для удаления нескольких строк из массива.
#drop method data = pd.read_csv("my file") data = data.drop(data.index[index_number]) print(data)
В этом синтаксисе мы сначала читаем фрейм данных; затем мы используем этот метод для прохождения индекса и удаления их. Наконец, мы распечатали обновленные данные.
Пример 1. Удаление последней строки из файла CsV
Вот пример, в котором мы удалили последнюю строку с помощью метода drop. Сначала мы читаем файл CSV как фрейм данных с помощью read_csv(), затем используем метод drop() для удаления строки с индексом -1. Затем мы указали индекс для удаления, используя параметр index. Наконец, мы записываем обновленный DataFrame обратно в файл CSV, используя to_csv(), устанавливая index=False, чтобы избежать записи индексов строк в файл.
import pandas as pd df = pd.read_csv('How_to_delete_only_one_row_in_CSV_with_Python.csv') df = df.drop(df.index[-1]) df.to_csv('How_to_delete_only_one_row_in_CSV_with_Python.csv', index=False)
Выход
CSV-файл перед запуском кода

CSV-файл после запуска кода —

Пример 2. Удаление строки по метке
Вот пример, аналогичный приведенному выше; в этом примере мы удаляем строку с меткой «строка». В этом примере мы читаем CSV-файл с помощью read_csv(), но на этот раз мы устанавливаем столбец «id» в качестве индекса, используя параметр index_m. Затем мы используем метод drop() для удаления строки с индексной меткой «строка». Затем мы указали метку, которую нужно удалить, используя параметр index. Наконец, мы записываем обновленный DataFrame обратно в файл CSV с помощью to_csv(), не устанавливая index=False, поскольку метки строк теперь являются частью файла CSV.
import pandas as pd df = pd.read_csv('How_to_delete_only_one_row_in_CSV_with_Python.csv', index_col='id') df = df.drop('row1') df.to_csv('How_to_delete_only_one_row_in_CSV_with_Python.csv', index=True)
Выход
CSV-файл перед запуском кода —

CSV-файл после запуска кода —

Пример 3. Удаление строки с условием
В этом примере сначала мы читаем CSV-файл, затем используем метод drop(), чтобы удалить строку, в которой значение в столбце «Имя» равно «Джон». Мы делаем это, сначала используя логическое индексирование, чтобы выбрать строки, соответствующие условию. Наконец, мы записываем обновленный DataFrame обратно в файл CSV, используя to_csv(), снова устанавливая index=False.
import pandas as pd df = pd.read_csv('example_3.csv') df = df.drop(df[df.Name == 'Ankita'].index) df.to_csv('example_3.csv', index=False)
Выход
CSV-файл перед запуском кода —

CSV-файл после запуска кода —

Заключение
Мы узнали, что pandas — это мощная и гибкая библиотека Python для манипулирования и анализа данных. Он обеспечивает высокопроизводительные структуры данных. Мы проиллюстрировали метод удаления для удаления строки из файла csv. В зависимости от потребностей мы можем указать строки для удаления по индексу, метке или условию. Этот метод позволяет удалить одну или несколько строк из файла csv.
Все права защищены. © Linux-Console.net • 2019-2024
Как удалить строки по индексу в Pandas (с примерами)
Вы можете использовать следующий синтаксис, чтобы удалить одну строку из pandas DataFrame по номеру индекса:
#drop first row from DataFrame df = df.drop (index= 0 )
И вы можете использовать следующий синтаксис, чтобы удалить несколько строк из pandas DataFrame по номерам индексов:
#drop first, second, and fourth row from DataFrame df = df.drop (index=[ 0 , 1 , 3 ])
Если ваш DataFrame имеет строки в качестве значений индекса, вы можете просто передать имена в виде строк для удаления:
df = df.drop (index=['first', 'second', 'third'])
В следующих примерах показано, как на практике удалять строки по индексу.
Пример 1. Удаление одной строки по индексу
В следующем коде показано, как удалить вторую строку в кадре данных pandas:
import pandas as pd #create DataFrame df = pd.DataFrame() #view DataFrame df team first last points 0 Mavs Dirk Nowitzki 26 1 Lakers Kobe Bryant 31 2 Spurs Tim Duncan 22 3 Cavs Lebron James 29 #drop second row from DataFrame df = df.drop (index= 1 ) #view resulting dataFrame df team first last points 0 Mavs Dirk Nowitzki 26 2 Spurs Tim Duncan 22 3 Cavs Lebron James 29
Пример 2. Удаление нескольких строк по индексу
Следующий код показывает, как удалить несколько строк в pandas DataFrame по индексу:
import pandas as pd #create DataFrame df = pd.DataFrame() #view DataFrame df team first last points 0 Mavs Dirk Nowitzki 26 1 Lakers Kobe Bryant 31 2 Spurs Tim Duncan 22 3 Cavs Lebron James 29 #drop first, second, and fourth row from DataFrame df = df.drop (index=[ 0 , 1, 3 ]) #view resulting dataFrame df team first last points 2 Spurs Tim Duncan 22
Пример 3: удаление строк, когда индекс является строкой
В следующем коде показано, как удалять строки из кадра данных pandas по индексу, когда индекс представляет собой строку, а не число:
import pandas as pd #create DataFrame df = pd.DataFrame(, index=['A', 'B', 'C', 'D']) #view DataFrame df team first last points A Mavs Dirk Nowitzki 26 B Lakers Kobe Bryant 31 C Spurs Tim Duncan 22 D Cavs Lebron James 29 #remove rows with index values 'A' and 'C' df = df.drop (index=['A', 'C']) #view resulting DataFrame df team first last points B Lakers Kobe Bryant 31 D Cavs Lebron James 29
Удаление строк по условию в DataFrame (Pandas)

Выдает ошибку
KeyError: ‘[False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, . и далее 600 значений
lower_limit_ot = 37.0
а значения в таблице во 2 столбце:
57.48
28.40
37.50
42.40
Кто-нибудь может помочь с этим вроде обращаюсь к значению и сравниваю его с переменной. Даже возвращается значение True|False, а drop не удаляет
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Pandas, dataframe — добавление новых строк с сохранением результата прошлых расчетов
Здравствуйте спецы, помогите :'( Есть DataFrame: можно ли реализовать, чтобы при ручной смене.
Работа с dataframe. Удаление строк по условию. Получение минимальных значений
День добрый, господа программеры. Такой вопрос возник, у меня есть некий dataframe, в нем 10.

pandas подсчет количества по строкам в dataframe по условию
Добрый день, прошу помощи, нужно создать столбец который посчитает количество не нулевых дней в.
Удаление выбросов DataFrame (Pandas)
Требуется удалить выбросы из показателя, как это сделать я не знаю, поэтому пишу сюда..
535 / 312 / 78
Регистрация: 10.04.2012
Сообщений: 1,160
Записей в блоге: 2
1 2 3 4 5 6 7 8 9 10 11 12 13
import pandas as pd d1 = '2012-02-26' t1 = pd.DataFrame(pd.date_range(d1, periods=5, freq='D')) t2 = pd.DataFrame(range(500, 505)) df = pd.concat([t1, t2], axis=1) df.columns = list('AB') df = df.set_index('A') print(df) # Удалить 29 февраля df = df.drop(df[(df.index.month==2) & (df.index.day==29)].index) print(df)
В аргументе drop обязательно должен быть индекс
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Удаление строки из DataFrame. Библиотека Pandas
Как из датафрейма удалить определенную строку, которая не соответствующую условию. Пример: .
Дублирование строк в DataFrame pandas
Добрый день! Имеется ли простой способ продублировать строку DataFrame 5 раз подряд и это.
Pandas. Изменение значений Dataframe исходя из другого Dataframe
Добрый день. Прошу подсказать с реализаций следующего алгоритма: я загружаю из файла примерно.

Удаление строк в dataframe
Доброго времени суток! Возник вопрос. Есть 2 dataframe, в каждом dataframe 3 столбца. 1 — индекс, 2.
Удаление строк с определенными датами DataFrame
Добрый день! Подскажите пожалуйста как из DataFrame где есть даты в формате ‘%d.%m.%Y %H:%M:%S’.
Перестройка таблицы pandas с увеличением кол-ва строк по условию
Добрый день, столкнулся с проблемой, у меня большая таблица с разными параметрами, и мне надо.
Или воспользуйтесь поиском по форуму: