Библиотека Pandas – одна из самых популярных библиотек для работы с данными в Python. Она предоставляет широкий спектр возможностей для работы с таблицами и данными в формате столбцов и строк. Иногда бывает нужно удалить столбцы, содержащие определенную строку в их именах. В этой статье мы рассмотрим, как это сделать с помощью Pandas.
Импортирование библиотеки Pandas
Перед началом работы с таблицами и данными, необходимо импортировать библиотеку Pandas. Вы можете импортировать ее следующим образом:
import pandas as pd
Создание таблицы
Прежде чем удалять столбцы, необходимо создать таблицу. Мы можем создать ее с помощью функции pd.DataFrame()
. Для примера создадим таблицу с пятью столбцами и пятью строками:
import pandas as pd
data = {'name': ['John', 'Mike', 'Alex', 'Maria', 'Emily'],
'age': [25, 31, 19, 27, 22],
'gender': ['M', 'M', 'M', 'F', 'F'],
'city': ['New York', 'Chicago', 'Los Angeles', 'Washington', 'Boston'],
'occupation': ['Engineer', 'Teacher', 'Student', 'Doctor', 'Lawyer']}
df = pd.DataFrame(data)
print(df)
Вывод:
name age gender city occupation
0 John 25 M New York Engineer
1 Mike 31 M Chicago Teacher
2 Alex 19 M Los Angeles Student
3 Maria 27 F Washington Doctor
4 Emily 22 F Boston Lawyer
Удаление столбцов по содержанию определенной строки
Для удаления столбцов, содержащих определенную строку в их именах, мы будем использовать str.contains()
. Этот метод позволяет нам искать подстроку в строках. Мы можем его использовать для поиска столбцов, содержащих искомую подстроку.
Давайте рассмотрим несколько примеров.
Пример 1: Удаление столбца, содержащего заданную строку
Например, давайте удалим столбец, содержащий строку "city"
в его имени:
import pandas as pd
data = {'name': ['John', 'Mike', 'Alex', 'Maria', 'Emily'],
'age': [25, 31, 19, 27, 22],
'gender': ['M', 'M', 'M', 'F', 'F'],
'city': ['New York', 'Chicago', 'Los Angeles', 'Washington', 'Boston'],
'occupation': ['Engineer', 'Teacher', 'Student', 'Doctor', 'Lawyer']}
df = pd.DataFrame(data)
# Удаление столбца, содержащего "city" в имени
df = df.loc[:, ~df.columns.str.contains('city')]
print(df)
Вывод:
name age gender occupation
0 John 25 M Engineer
1 Mike 31 M Teacher
2 Alex 19 M Student
3 Maria 27 F Doctor
4 Emily 22 F Lawyer
В результате выполнения кода мы получили таблицу без столбца "city"
.
Пример 2: Удаление нескольких столбцов, содержащих заданную строку
Давайте теперь рассмотрим случай, когда мы хотим удалить несколько столбцов, содержащих строку "age"
в их имени:
import pandas as pd
data = {'name': ['John', 'Mike', 'Alex', 'Maria', 'Emily'],
'age': [25, 31, 19, 27, 22],
'gender': ['M', 'M', 'M', 'F', 'F'],
'city': ['New York', 'Chicago', 'Los Angeles', 'Washington', 'Boston'],
'occupation': ['Engineer', 'Teacher', 'Student', 'Doctor', 'Lawyer']}
df = pd.DataFrame(data)
# Удаление всех столбцов, содержащих "age" в имени
df = df.loc[:, ~df.columns.str.contains('age')]
print(df)
Вывод:
name gender city occupation
0 John M New York Engineer
1 Mike M Chicago Teacher
2 Alex M Los Angeles Student
3 Maria F Washington Doctor
4 Emily F Boston Lawyer
В результате выполнения кода мы получили таблицу без двух столбцов, содержащих "age"
в их имени.
Пример 3: Удаление столбцов, содержащих заданный набор символов в их именах
Мы также можем использовать регулярные выражения для удаления столбцов, содержащих заданный набор символов в их именах. Например, давайте удалим все столбцы, содержащие букву "e"
в их именах:
import pandas as pd
data = {'name': ['John', 'Mike', 'Alex', 'Maria', 'Emily'],
'age': [25, 31, 19, 27, 22],
'gender': ['M', 'M', 'M', 'F', 'F'],
'city': ['New York', 'Chicago', 'Los Angeles', 'Washington', 'Boston'],
'occupation': ['Engineer', 'Teacher', 'Student', 'Doctor', 'Lawyer']}
df = pd.DataFrame(data)
# Удаление всех столбцов, содержащих букву "e" в имени
df = df.loc[:, ~df.columns.str.contains('e')]
print(df)
Вывод:
gender
0 M
1 M
2 M
3 F
4 F
В результате выполнения кода мы получили таблицу только с одним столбцом "gender"
, так как все остальные столбцы содержали букву "e"
в их именах.
Заключение
В этой статье мы рассмотрели, как удалить столбцы по содержанию определенной строки в их именах. Мы использовали метод str.contains()
для поиска столбцов, содержащих заданную строку в их именах, а затем использовали метод loc[]
для удаления этих столбцов. Библиотека Pandas предоставляет широкие возможности для работы с таблицами и данными, и эта статья была только началом. Я надеюсь, что вы смогли узнать что-то новое и сможете применить это в своей работе.