Фреймы данных Pandas — это структуры данных, которые содержат:
- Данные , организованные в двух измерениях , строки и столбцы
- Ярлыки , соответствующие строкам и столбцам
Есть много способов создать фрейм данных Pandas. В большинстве случаев вы будете использовать конструктор DataFrame и предоставить данные, метки и другую информацию. Вы можете передавать данные в виде двумерного списка, кортежа или массива NumPy. Вы также можете указать его как словарь или экземпляр серии Pandas.
- Общие сведения о Pandas DataFrame drop ()
- Вывод
- Синтаксис
- Параметры
- Возвращаемое значение
- Удаление столбцов из DataFrame с помощью метода drop ()
- Вывод
- Выходные данные
- Удаление нескольких столбцов с помощью метода df.drop ()
- Output
- Удаление столбцов на основе по индексу столбца
- Вывод
- Удаление строки по индексу в DataFrame с помощью drop ()
- Вывод
- Удаление столбцов с помощью метода iloc [] и drop () ▪
- Вывод
- Удаление столбцов с использованием методов loc [] и drop ()
- Вывод
- Удаление столбцов итеративным способом
- Вывод
- Заключение
- См. также
Общие сведения о Pandas DataFrame drop ()
Pandas DataFrame drop ( ) функция удаляет указанные метки из строк и столбцов. Функция drop () удаляет строки и столбцы либо путем определения имен меток и соответствующей оси, либо путем прямого упоминания имен индекса или столбцов.
Когда мы используем мультииндекс, метки на разных уровнях удаляются путем упоминания уровня. Он используется для удаления части фрейма данных, которая нам не нужна в нашем анализе.
Давайте создадим Pandas DataFrame с использованием словаря.
import pandas as pdimport numpy as np # Импорт numpy для значений NaN # Создание набора данных с помощью dictionarydataset = {'Name': ['Rohit', 'Arun', 'Sohit' , 'Arun', 'Shubh'], 'Roll no': ['01', '02', '03', '04', np.nan], 'Maths': ['93', '63', np.nan, '94', '83'], 'Science': ['88', np.nan, '66', '94', np.nan], 'English': ['93', '74 ',' 84 ',' 92 ',' 87 ']} row_labels = [' a ',' b ',' c ',' d ',' e '] df = pd.DataFrame (data = dataset, index = row_labels) print ("DataFrame: n", df)
Вывод
DataFrame: Name Roll no Maths Science Englisha Rohit 01 93 88 93b Arun 02 63 NaN 74c Sohit 03 NaN 66 84d Arun 04 94 94 92e Shubh NaN 83 NaN 87
набор данных — это переменная Python, которая ссылается в Словарь , содержащий данные об учащихся. Он также содержит метки столбцов:
‘Name’
«Нет броска»
«Математика»
Наконец, row_labels относится к списку, который содержит ярлыки строк с номерами от a до e . Pandas DataFrames иногда могут быть очень большими, что делает непрактичным просмотр всех строк сразу. Вы можете использовать .head () для отображения первых нескольких элементов и tail () для отображения нескольких последних элементов.
Теперь давайте разберемся с синтаксисом метод Pandas DataFrame drop ().
Синтаксис
DataFrame. drop (self, labels = None, axis = 0, index = None, columns = None, level = None, inplace = False, errors = 'raise')
Параметры
Всего функция drop () содержит семь параметров, некоторые из которых являются необязательными.
- метки : это индекс или метки столбцов, которые нужно опустить. По умолчанию он задан как одна метка или как список.
- axis : он имеет значения 0 и 1. Мы помещаем 0 в параметр, если мы хотим удалить из индекса и 1, когда мы хотим удалить из столбцов. По умолчанию это 0.
- index : это альтернатива указанию оси (метки, axis = 0 эквивалентно index = labels)
- columns : это альтернатива определению оси (метки, axis = 1 равно columns = labels.
- level : этот параметр является необязательным и предназначен для целей multiIndex, т.е. уровня, с которого будут удалены ярлыки.
- inplace : логический параметр, когда true, выполняет операцию на месте и возвращает None. По умолчанию его значение false.
- errors : если для него установлено значение ‘ ignore ‘, он подавляет ошибку, и удаляются только существующие метки. Он может иметь два значения: 1-е -‘ ignore ‘ и 2-е -‘ raise ‘ по умолчанию его значение повышается.
Возвращаемое значение
Pandas drop () метод возвращает фрейм данных без удаленного индекса или сложных меток.
Удаление столбцов из DataFrame с помощью метода drop ()
Давайте удалим столбец Science из DataFrame и посмотрим на результат.
import pandas as pdimport numpy as np # Импорт numpy для значений NaN # Создание набора данных с использованием dictionarydataset = {'Name': ['Rohit', 'Arun', 'Sohit', 'Arun', 'Shubh'], 'Roll no': ['01 ',' 02 ',' 03 ',' 04 ', np.nan],' Maths ': [' 93 ',' 63 ', np.nan,' 94 ',' 83 '],' Science ': [ '88', np.nan, '66', '94', np.nan], 'английский': ['93', '74', '84', '92', '87']} row_labels = [ 'a', 'b', 'c', 'd', 'e'] df = pd.DataFrame (data = dataset, index = row_labels) print ("DataFrame: n", df) print ('Удалить " Столбец "Наука" из DataFrame ') удален = df. drop (['Science'], axis = 1) print ("После удаления Science DataFrame: n", удалено)
Вывод
DataFrame: Name Roll no Maths Science Englisha Rohit 01 93 88 93b Arun 02 63 NaN 74c Sohit 03 NaN 66 84d Arun 04 94 94 92e Shubh NaN 83 NaN 87 Удалите столбец "Science" из DataFrame После удаления Science DataFrame: Name Roll no Maths Englisha Rohit 01 93 93b Arun 02 63 74c Sohit 03 NaN 84d Arun 04 94 92e Shubh NaN 83 87
В этом примере мы удалили столбец Наука из DataFrame . Минуя , axis = 1 , мы сказали конкретно, что удалите столбцы. Мы можем сделать это другим способом, например явно определить columns в аргументе df.drop ().
deleted = df.drop (columns = ['' Science '])
Теперь нам не нужно передавать параметр axis = 1 методу drop (). И мы получим тот же результат.
DataFrame: Name Roll no Maths Science Englisha Rohit 01 93 88 93b Arun 02 63 NaN 74c Sohit 03 NaN 66 84d Arun 04 94 94 92e Shubh NaN 83 NaN 87Remove Столбец "Наука" из DataFrame После удаления научного DataFrame: Имя Roll no Maths Englisha Rohit 01 93 93b Arun 02 63 74c Sohit 03 NaN 84d Arun 04 94 92e Shubh NaN 83 87
Давайте посмотрим на другую программу. /p>
Напишите программу, чтобы показать работу drop ().
импортировать панды как pddata = {'Name': ['Rohit', 'Mohit', ' Sohit ',' Arun ',' Shubh '],' Roll no ': [' 01 ',' 03 ',' 04 ',' 05 ',' 09 '],' Оценки по математике ': [' 93 ', '63', '74', '94', '83'], 'Оценки в науке': ['88', '55', '66', '94', '35'], 'Оценки на английском языке' : ['93', '74', '84', '92', '87']} df = pd.DataFrame (data) # Удаление отметок в maths columnprint (df.drop (['Marks in maths'] , axis = 1))
Выходные данные
Имя Roll no Оценка в науке Оценки на английском языке0 Rohit 01 88 931 Mohit 03 55 742 Сохит 04 66 843 Арун 0 5 94 924 Shubh 09 35 87
Здесь, в этом примере, мы видим, что мы создали словарь, содержащий данные 5 студентов. Данные включают их имена, номера рулонов и оценки по разным предметам.
Здесь, если мы хотим отобразить данные только двух субъектов, например, тогда мы можем использовать метод drop (), чтобы отбросить конкретный столбец здесь math. Здесь мы сбросили отметки в математическом столбце с помощью функции перетаскивания.
Удаление нескольких столбцов с помощью метода df.drop ()
Pandas Функция DataFrame drop () может помочь нам удалить несколько столбцов из DataFrame. Мы можем передать список столбцов методу drop (), и он удалит все столбцы из DataFrame..
импортировать панд как pddata = {'Name': ['Rohit', 'Mohit', 'Sohit', 'Arun', 'Shubh'], 'Roll no': ['01' , '03', '04', '05', '09'], 'Оценки по математике': ['93', '63', '74', '94', '83'], 'Оценки по естествознанию ': [' 88 ',' 55 ',' 66 ',' 94 ',' 35 '],' Знаки на английском языке ': [' 93 ',' 74 ',' 84 ',' 92 ',' 87 ' ]} df = pd.DataFrame (data) # Удаление нескольких столбцовprint (df.drop (['Оценки по математике', 'Оценки по науке'], axis = 1))
Output
Name Roll no Marks in english0 Rohit 01 931 Mohit 03 742 Sohit 04 843 Arun 05 924 Shubh 09 87
Здесь мы прошли два столбца в аргументе функции drop (), и вы можете видеть, что мы удалили два столбца с помощью функции перетаскивания, это были оценки по математике и оценки по науке.
Удаление столбцов на основе по индексу столбца
Функция df.drop () удаляет столбец на основе индекса столбца. Мы можем передать список индексов в функцию drop (), и она удалит столбцы на основе индекса столбца.
import pandas as pdimport numpy as np # Импорт numpy для значений NaN # Создание набор данных с использованием dictionarydataset = {'Name': ['Rohit', 'Arun', 'Sohit', 'Arun', 'Shubh'], 'Roll no': ['01', '02', '03', ' 04 ', np.nan],' Maths ': [' 93 ',' 63 ', np.nan,' 94 ',' 83 '],' Science ': [' 88 ', np.nan,' 66 ' , '94', np.nan], 'English': ['93', '74', '84', '92', '87']} df = pd.DataFrame (data = dataset) print ("DataFrame : n ", df) print ('--------------------------------------') # Удалить строки на основе indexdf.drop (df.columns [[1, 3]], axis = 1, inplace = True) print ("После удаления определенных строк из DataFrame: n", df)
Вывод
DataFrame: Name Roll no Maths Science English0 Rohit 01 93 88 931 Arun 02 63 NaN 742 Sohit 03 NaN 66 843 Arun 04 94 94 924 Shubh NaN 83 NaN 87 -------------------------------------- После удаления определенных строк из DataFrame: Name Maths Englis h0 Rohit 93931 Arun 63 742 Sohit NaN 843 Arun 94924 Shubh 83 87
В этом примере мы использовали функцию df.columns () для передачи список индекса столбца, а затем оберните эту функцию методом df.drop () и, наконец, он удалит столбцы, указанные индексами.
Удаление строки по индексу в DataFrame с помощью drop ()
Метод Pandas df.drop () удаляет строку, указывая индекс DataFrame. Нам просто нужно указать список индексов, и он удалит эти основанные на индексе строки из DataFrame..
Давайте отбросим строку на основе индекса 0, 2 и 3.
import pandas as pdimport numpy as np # Импорт numpy для значений NaN # Создание набора данных с помощью dictionarydataset = {'Name': ['Rohit', 'Arun', 'Sohit', 'Arun', 'Shubh'], 'Roll no': ['01', '02', '03', '04', np.nan], 'Maths': ['93', '63', np.nan, '94', '83'], 'Science': ['88', np.nan, '66', '94 ', np.nan],' English ': [' 93 ',' 74 ',' 84 ',' 92 ',' 87 ']} df = pd.DataFrame (data = dataset) print ("DataFrame: n ", df) print ('--------------------------------------') # Удалить строки на основе indexremovedRow = df.drop ([0, 2, 3]) print ("После удаления определенных строк из DataFrame: n", deletedRow)
Вывод
DataFrame: Name Roll no Maths Science English0 Rohit 01 93 88 931 Arun 02 63 NaN 742 Sohit 03 NaN 66 843 Arun 04 94 94924 Shubh NaN 83 NaN 87 ------- ------------------------------- После удаления определенных строк из DataFrame: Name Roll no Maths Science English1 Arun 02 63 NaN 744 Shubh NaN 83 NaN 87
В этом примере мы передали в функцию перетаскивания список индексов строк, который необходимо удалить.
Удаление столбцов с помощью метода iloc [] и drop () ▪
Pandas.DataFrame.iloc — это уникальный встроенный метод, который возвращает индексирование на основе целочисленного местоположения для выбора по положению. Мы выберем столбцы с помощью iloc [] с методом drop ().
import pandas as pdimport numpy as np # Импорт numpy для значений NaN # Создание набора данных с помощью dictionarydataset = {'Name': [' Rohit, Arun, Sohit, Arun, Shubh], Roll no: [01, 02, 03, 04, np.nan], Maths. : ['93', '63', np.nan, '94', '83'], 'Science': ['88', np.nan, '66', '94', np.nan], ' Английский ': [' 93 ',' 74 ',' 84 ',' 92 ',' 87 ']} df = pd.DataFrame (data = dataset) print ("DataFrame: n", df) print (' - ------------------------------------- ') df.drop (df.iloc [:, 1 : 3], inplace = True, axis = 1) print ("После удаления определенных строк из DataFrame: n", df)
Вывод
DataFrame: Name Roll no Maths Science English0 Rohit 01 93 88 931 Arun 02 63 NaN 742 Sohit 03 NaN 66 843 Arun 04 94 94924 Shubh NaN 83 NaN 87 ----------- --------------------------- После удаления определенных строк из DataFrame: Name Science English0 Rohit 88 931 Arun NaN 742 Sohit 66 843 Arun 94924 Shubh NaN 87
В этом Например, мы выбрали 1 и 2 строки с помощью iloc [] и удалили их из DataFrame с помощью метода drop ().
Удаление столбцов с использованием методов loc [] и drop ()
Функция loc [] Pandas DataFrame используется для доступа к группе строк и столбцов по меткам или логическому массиву. Метод loc () в основном выполняется на основе меток, но логический массив также может это делать. Затем мы удалим выбранные строки или столбцы с помощью метода drop ().
import pandas as pdimport numpy as np # Импорт numpy для значений NaN # Создание набора данных с помощью dictionarydataset = {'Name': [ 'Rohit', 'Arun', 'Sohit', 'Arun', 'Shubh'], 'Roll no': ['01', '02', '03', '04', np.nan], Maths. ': [' 93 ',' 63 ', np.nan,' 94 ',' 83 '],' Science ': [' 88 ', np.nan,' 66 ',' 94 ', np.nan], 'Английский': ['93', '74', '84', '92', '87']} df = pd.DataFrame (data = dataset) print ("DataFrame: n", df) print (' -------------------------------------- ') df.drop (df.loc [:, 'Maths': 'Science']. Columns, axis = 1, inplace = True) print ("После удаления определенных строк из DataFrame: n", df)
Вывод
DataFrame: Name Roll no Maths Science English0 Rohit 01 93 88 931 Arun 02 63 NaN 742 Sohit 03 NaN 66 843 Arun 04 94 94924 Shubh NaN 83 NaN 87 ---- ---------------------------------- После удаления определенных строк из DataFrame: Name Roll no English0 Rohit 01931 Arun 02 742 Сохит 03843 Арун 04 924 Shubh NaN 87
Вы можете видеть, что столбцы Maths и Science были удалены из DataFrame. Разница между loc () и iloc () заключается в том, что iloc () исключает последний элемент диапазона столбцов.
Удаление столбцов итеративным способом
Этот подход не рекомендуется, потому что он требует времени для выполнения, но то, что делает этот подход, заключается в том, что вам нужно получить столбцы с помощью метода df.columns () и повторить столбцы с использованием цикла for. Затем мы используем оператор Python in для удаления столбца с помощью метода del.
import pandas as pdimport numpy as np # Импорт numpy для значений NaN # Создание набора данных с помощью dictionarydataset = {'Name': [' Rohit, Arun, Sohit, Arun, Shubh], Roll no: [01, 02, 03, 04, np.nan], Maths. : ['93', '63', np.nan, '94', '83'], 'Science': ['88', np.nan, '66', '94', np.nan], ' Английский ': [' 93 ',' 74 ',' 84 ',' 92 ',' 87 ']} df = pd.DataFrame (data = dataset) print ("DataFrame: n", df) print (' - ------------------------------------- ') для col в df. columns: if 'Maths' в col: del df [col] print ("После удаления определенных строк из DataFrame: n", df)
Вывод
DataFrame: Name Roll no Maths Science English0 Rohit 01 93 88 931 Arun 02 63 NaN 742 Sohit 03 NaN 66 843 Arun 04 94 94924 Shubh NaN 83 NaN 87 --------- ----------------------------- После удаления определенных строк из DataFrame: Name Roll no Science English0 Rohit 01 88 931 Arun 02 NaN 742 Sohit 03 66 843 Arun 04 94 924 Shubh NaN NaN 87
В этом примере мы проверили столбец Maths , и если он там есть, то мы удалите этот столбец из DataFrame с помощью оператора del.
Заключение
В этом руководстве мы увидели следующие способы удалить столбцы или строки из DataFrame Pandas.
- Удалить один столбец из DataFrame.
- Удаление нескольких столбцов из DataFrame.
- Удаление столбцов с помощью индекса столбца
- Удаление столбцов с помощью iloc [] и drop ()
- Удаление столбцов с помощью loc [] и drop ()
- Удаление столбцов итеративным способом
- Удаление строк с использованием индексов
Наконец, метод Pandas DataFrame drop () в учебнике Python завершен.
См. также
Pandas DataFrame count ()
Pandas DataFrame reset_index ()
Pandas DataFrame head ()
Pandas DataFrame describe ()
Pandas DataFrame read_csv ()