Как удалить столбец в excel python
Перейти к содержимому

Как удалить столбец в excel python

  • автор:

Как удалить безымянный столбец в Pandas DataFrame

Вы можете использовать следующие два метода, чтобы удалить столбец в pandas DataFrame, который содержит «Без имени» в имени столбца:

Способ 1: удалить безымянный столбец при импорте данных

df = pd.read_csv('my_data.csv', index_col= 0 ) 

Способ 2: удалить безымянный столбец после импорта данных

df = df.loc[:, ~df.columns.str.contains('^Unnamed')] 

В следующих примерах показано, как использовать каждый метод на практике.

Пример 1. Удаление безымянного столбца при импорте данных

Предположим, мы создаем простой DataFrame pandas и экспортируем его в файл CSV:

import pandas as pd #create DataFrame df1 = pd.DataFrame() #view DataFrame print(df1) team points rebounds 0 A 4 12 1 B 4 7 2 C 6 8 3 D 8 8 4 E 9 5 5 F 5 11 #export DataFrame to CSV file df1.to_csv('my_data.csv') 

Теперь, когда мы пытаемся прочитать файл в кадре данных pandas, первый столбец имеет имя Безымянный: 0

#import CSV file df2 = pd.read_csv('my_data.csv') #view DataFrame print(df2) Unnamed: 0 team points rebounds 0 0 A 4 12 1 1 B 4 7 2 2 C 6 8 3 3 D 8 8 4 4 E 9 5 5 5 F 5 11 

Чтобы избежать этого, мы можем указать index_col=0 , чтобы сообщить pandas, что первый столбец на самом деле является столбцом индекса:

#import CSV file df2 = pd.read_csv('my_data.csv', index_col= 0 ) #view DataFrame print(df2) team points rebounds 0 A 4 12 1 B 4 7 2 C 6 8 3 D 8 8 4 E 9 5 5 F 5 11 

Пример 2. Удаление безымянного столбца после импорта данных

Предположим, мы создаем простой DataFrame pandas и экспортируем его в файл CSV:

import pandas as pd #create DataFrame df1 = pd.DataFrame() #export DataFrame to CSV file df1.to_csv('my_data.csv') 

Теперь предположим, что мы импортируем этот файл в DataFrame pandas:

#import CSV file df2 = pd.read_csv('my_data.csv') #view DataFrame print(df2) Unnamed: 0 team points rebounds 0 0 A 4 12 1 1 B 4 7 2 2 C 6 8 3 3 D 8 8 4 4 E 9 5 5 5 F 5 11 

Чтобы удалить столбец, который содержит «Безымянный» в имени, мы можем использовать следующий синтаксис:

#drop any column that contains "Unnamed" in column name df2 = df2. loc [:, ~df2. columns.str.contains('^Unnamed')] #view updated DataFrame print(df2) team points rebounds 0 A 4 12 1 B 4 7 2 C 6 8 3 D 8 8 4 E 9 5 5 F 5 11 

Обратите внимание, что столбец «Без имени: 0» был удален из DataFrame.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:

Вставка/удаление строк/столбцов, перемещение диапазона ячеек

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

Содержание:

  • Вставка строк и столбцов.
  • Удаление строк и столбцов.
  • Перемещение диапазона ячеек.

Вставка строк и столбцов.

Модуль openpyxl поддерживает вставку строк или столбцов. Чтобы произвести указанные действия, необходимо использовать соответствующие методы экземпляра рабочего листа Worksheet :

  • Worksheet.insert_cols(idx, amount=1) : вставляет столбец или столбцы перед col==idx . Аргумент amount — количество добавляемых столбцов.
  • Worksheet.insert_rows(idx, amount=1) : вставляет строку или строки перед row==idx . Аргумент amount — количество добавляемых строк.

По умолчанию вставляется одна строка или столбец. Например, чтобы вставить одну строку перед существующей 7-ой строкой необходимо вызвать ws.insert_rows(7) .

>>> from openpyxl import Workbook >>> wb = Workbook() >>> ws = wb.active # создадим произвольные данные >>> data = [[row*col for col in range(1, 16)] for row in range(1, 31)] # добавляем данные на активный лист >>> for row in data: . ws.append(row) . # вставим 3 новые строки перед # существующей 7-ой строкой >>> ws.insert_rows(7, 3) # сохраняем и смотрим >>> wb.save('test.xlsx') 

Удаление строк и столбцов.

Что бы удалить строки или столбцы, используйте следующие методы экземпляра рабочего листа Worksheet :

  • Worksheet.delete_cols() : удаляет столбец или столбцы, начиная с col==idx . Аргумент amount — количество удаляемых столбцов.
  • Worksheet.delete_rows() : удаляет строку или строки, начиная с row==idx . Аргумент amount — количество удаляемых строк.

По умолчанию удаляется одна строка или столбец. Например, чтобы удалить столбцы в диапазоне F:H необходимо вызвать ws.delete_cols(6, 3) .

Пример — продолжение предыдущего:

# удалим 3 столбцы в диапазоне `F:H` >>> ws.delete_cols(6, 3) # сохраняемся и открываем файл >>> wb.save('test.xlsx') 

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

Перемещение диапазона ячеек.

Модуль openpyxl обеспечивает перемещение диапазонов ячеек внутри листа методом:

  • Worksheet.move_range(cell_range, rows=0, cols=0, translate=False) .

Этот метод перемещает диапазон ячеек cell_range на количество строк rows и/или столбцов cols :

  • вниз, если rows > 0 , и вверх, если rows < 0 ,
  • вправо, если cols > 0 , и влево, если cols < 0 .

Существующие ячейки будут перезаписаны. Формулы и ссылки обновляться не будут.

>>> ws.move_range("D4:F10", rows=-1, cols=2) 

Это приведет к перемещению ячеек в диапазоне ячеек D4:F10 вверх на одну строку и вправо на два столбца. Ячейки будут перезаписаны всеми существующими ячейками.

Если ячейки содержат формулы, то openpyxl может транслировать их, но, поскольку это не всегда то, что нужно, по этому этот функционал умолчанию отключен. Кроме того, будут транслированы только формулы в самих ячейках. Ссылки на ячейки из других ячеек или определенные имена обновляться не будут. Для этого можно использовать переводчик формул синтаксического анализа:

>>> ws.move_range("G4:H10", rows=1, cols=1, translate=True) 

Это приведет к перемещению относительных ссылок в формулах в диапазоне на одну строку и один столбец.

  • КРАТКИЙ ОБЗОР МАТЕРИАЛА.
  • Встроенные в Excel формулы и модуль openpyxl
  • Как установить формат в ячейку Excel модулем openpyxl
  • Работа с форматированным текстом, модуль openpyxl
  • Работа со стилями текста и ячеек, модуль openpyxl
  • Как объединить/разъединить ячейки, модулем openpyxl
  • Как изменить размеры строки/столбца модулем openpyxl
  • Как закрепить строки/столбцы как шапку, модулем openpyxl
  • Настройка печати/просмотра документа в Excel модулем openpyxl
  • Вставка/удаление строк и столбцов, перемещение ячеек, модуль openpyxl
  • Обработка больших файлов XLSX модулем openpyxl
  • Работа с Pandas и поддержка NumPy, модуль openpyxl
  • Проверка данных при заполнении ячеек, модуль openpyxl
  • Именованные диапазоны ячеек в модуле openpyxl
  • Работа с объектом Table() модуля openpyxl
  • Защита книги и рабочего листа, модуля openpyxl
  • Добавление изображений в XLSX-документ, модуль openpyxl
  • Стиль ячеек по условию, модуль openpyxl
  • Создание диаграмм средствами модуля openpyxl
  • Класс Workbook() модуля openpyxl
  • Объект Worksheet модуля openpyxl
  • Объект ячейки Cell модуля openpyxl
  • Функции преобразования ячеек модуля openpyxl

Как из Pandas Dataframe удалить столбец?

При работе с данными в Pandas, часто можно столкнуться с ситуацией, когда часть столбцов в Dataframe не содержат нужной нам информации и их требуется удалить, в этой статье мы рассмотрим несколько способов, как это можно сделать.

Сначала подготовим небольшой Dataframe, на основании которого будет делать все манипуляции.

import pandas as pd
city_data = ‘Город’:[‘Москва’, ‘Казань’, ‘Владивосток’, ‘Санкт-Петербург’, ‘Калининград’],
‘Дата основания’:[‘1147’, ‘1005’, ‘1860’, ‘1703’, ‘1255’],
‘Площадь’:[‘2511’, ‘516’, ‘331’, ‘1439’, ‘223’],
‘Население’:[‘11,9’, ‘1,2’, ‘0,6’, ‘4,9’, ‘0,4’],
‘Погода’:[‘8’, ‘8’, ’17’, ‘9’, ’12’] >
city_df = pd.DataFrame(city_data)
city_df

Основным методом, который нам предлагает Pandas для удаления столбцов, является метод drop.
Синтаксис у метода согласно документации следующий:

drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors=’raise’), где:

  • labels – номера или названия столбцов для удаления
  • axis – значение 0, если вы хотите удалить строки, либо 1, если планируете удалять столбцы
  • index – определяет, какие строки надо удалить
  • columns – определяет, какие столбцы надо удалить
  • inplace – изменяет оригинальный Dataframe, если параметр равен True
  • errors – игнорируются ошибки, если параметр задан как ignore

Способ 1. Удаление столбца по его имени в Pandas

Укажите в методе drop название того столбца, что вы хотите удалить, а параметр axis сделайте равным 1:

city_df.drop(columns = [‘Население’],axis = 1)

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

city_df.drop(columns = [‘Население’, ‘Погода’], axis = 1)

Обратите внимание, что синтаксис выше не изменяет исходный Dataframe, если вы хотите это сделать, то добавьте параметр inplace=True

city_df.drop(columns = [‘Население’],axis = 1, inplace=True)

Способ 2. Удаление столбца по его порядковому номеру в Pandas

Мы можем удалить столбец, указывая не его имя, а его порядковый номер. Обратите внимание, что нумерация столбцов идет в Pandas с 0. К примеру мы хотим убрать столбец «Площадь», его порядковый номер – 2

city_df.drop(city_df.columns[[2]], axis = 1)

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

city_df.drop(city_df.columns[[2,3]], axis = 1)

Спасибо за внимание. В качестве бонуса прикладываю ноутбук к данной статье.

P.S. Рекомендую еще ознакомиться с нашей статьей «Как из Pandas удалить строку?».

Вставка и удаление строк и столбцов в Python

Создание электронных таблиц Excel в Python — Управление строками/столбцами

Вставка строки

Вставьте строку в любое место, вызвав метод insertRows коллекции Cells. Метод insertRows принимает индекс строки, в которую будет вставлена новая строка, в качестве первого аргумента и количество вставляемых строк в качестве второго аргумента. Ниже приведены шаги:

  • Загрузите книгу XLS или XLSX
  • Доступ к рабочему листу
  • Вставьте строку
  • Сохранить как книгу XLS или XLSX

Python Код

 def insert_row(self): \# Instantiating a Workbook object by excel file path workbook = self.Workbook(self.dataDir + "Book1.xls") \# Accessing the first worksheet in the Excel file worksheet = workbook.getWorksheets().get(0) \# Inserting a row into the worksheet at 3rd position worksheet.getCells().insertRows(2,1) \# Saving the modified Excel file in default (that is Excel 2003) format workbook.save(self.dataDir + "Insert Row.xls") print "Insert Row Successfully." 

Вставка нескольких строк

Чтобы вставить несколько строк на лист, вызовите метод insertRows коллекции Cells. Метод InsertRows принимает два параметра:

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

Python Код

 def insert_multiple_rows(self): \# Instantiating a Workbook object by excel file path workbook = self.Workbook(self.dataDir + 'Book1.xls') \# Accessing the first worksheet in the Excel file worksheet = workbook.getWorksheets().get(0) \# Inserting a row into the worksheet at 3rd position worksheet.getCells().insertRows(2,10) \# Saving the modified Excel file in default (that is Excel 2003) format workbook.save(self.dataDir + "Insert Multiple Rows.xls") print "Insert Multiple Rows Successfully." 

Удаление строки

Чтобы удалить строку в любом месте, вызовите метод deleteRows коллекции Cells. Метод DeleteRows принимает два параметра:

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

Python Код

 def delete_row(self): \# Instantiating a Workbook object by excel file path workbook = self.Workbook(self.dataDir + 'Book1.xls') \# Accessing the first worksheet in the Excel file worksheet = workbook.getWorksheets().get(0) \# Deleting 3rd row from the worksheet worksheet.getCells().deleteRows(2,1,True) \# Saving the modified Excel file in default (that is Excel 2003) format workbook.save(self.dataDir + "Delete Row.xls") print "Delete Row Successfully." 

Удаление нескольких строк

Чтобы удалить несколько строк с листа, вызовите метод deleteRows коллекции Cells. Метод DeleteRows принимает два параметра:

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

Python Код

 def delete_multiple_rows(self): \# Instantiating a Workbook object by excel file path workbook = self.Workbook(self.dataDir + 'Book1.xls') \# Accessing the first worksheet in the Excel file worksheet = workbook.getWorksheets().get(0) \# Deleting 10 rows from the worksheet starting from 3rd row worksheet.getCells().deleteRows(2,10,True) \# Saving the modified Excel file in default (that is Excel 2003) format workbook.save(self.dataDir + "Delete Multiple Rows.xls") print "Delete Multiple Rows Successfully." 

Вставка столбца

Разработчики также могут вставить столбец на лист в любом месте, вызвав метод insertColumns коллекции Cells. Метод insertColumns принимает два параметра:

  • Индекс столбца, индекс столбца, из которого столбец будет вставлен
  • Количество столбцов, общее количество столбцов, которые необходимо вставить

Python Код

 def insert_column(self): \# Instantiating a Workbook object by excel file path workbook = self.Workbook(self.dataDir + 'Book1.xls') \# Accessing the first worksheet in the Excel file worksheet = workbook.getWorksheets().get(0) \# Inserting a column into the worksheet at 2nd position worksheet.getCells().insertColumns(1,1) \# Saving the modified Excel file in default (that is Excel 2003) format workbook.save(self.dataDir + "Insert Column.xls") print "Insert Column Successfully." 

Удаление столбца

Чтобы удалить столбец из листа в любом месте, вызовите метод deleteColumns коллекции Cells. Метод deleteColumns принимает следующие параметры:

  • Индекс столбца, индекс столбца, из которого столбец будет удален.
  • Количество столбцов, общее количество столбцов, которые необходимо удалить.
  • Сдвиг ячеек, логический параметр, указывающий, следует ли смещать ячейки, оставшиеся после удаления.

Python Код

 def delete_column(self): \# Instantiating a Workbook object by excel file path workbook = self.Workbook(self.dataDir + 'Book1.xls') \# Accessing the first worksheet in the Excel file worksheet = workbook.getWorksheets().get(0) \# Deleting a column from the worksheet at 2nd position worksheet.getCells().deleteColumns(1,1,True) \# Saving the modified Excel file in default (that is Excel 2003) format workbook.save(self.dataDir + "Delete Column.xls") print "Delete Column Successfully." 

Скачать рабочий код

Скачать**Управление строками/столбцами (Aspose.Cells)**с любого из нижеперечисленных сайтов социального кодирования:

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *