Метод filter
Метод filter применяется к DataFrame
и позволяет отфильтровать столбцы или строки
по их названиям или меткам индекса. В качестве
основных параметров выступают items (точный
список названий), like (часть названия)
и regex (регулярное выражение). Параметр
axis управляет направлением: 1
(или columns) для столбцов и 0
(или index) для строк.
Синтаксис
df.filter(items=None, like=None, regex=None, axis=None)
Пример
Давайте выберем только столбцы с названиями 'a' и 'c':
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3],
'b': [4, 5, 6],
'c': [7, 8, 9]
})
res = df.filter(items=['a', 'c'])
print(res)
Результат выполнения кода:
a c
0 1 7
1 2 8
2 3 9
Пример
Теперь используем параметр like для выбора
столбцов, в названии которых есть буква 'b':
import pandas as pd
df = pd.DataFrame({
'ab': [1, 2, 3],
'bc': [4, 5, 6],
'cd': [7, 8, 9]
})
res = df.filter(like='b')
print(res)
Результат выполнения кода:
ab bc
0 1 4
1 2 5
2 3 6
Пример
Параметр regex позволяет задать регулярное
выражение для поиска. Выберем столбцы,
которые заканчиваются на цифру:
import pandas as pd
df = pd.DataFrame({
'col1': [1, 2, 3],
'col2': [4, 5, 6],
'colx': [7, 8, 9]
})
res = df.filter(regex=r'col\d$')
print(res)
Результат выполнения кода:
col1 col2
0 1 4
1 2 5
2 3 6
Пример
Направление фильтрации можно изменить с помощью
параметра axis. В этом примере выберем
строки с индексом, начинающимся на 'row':
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3],
'b': [4, 5, 6]
}, index=['row1', 'row2', 'col'])
res = df.filter(like='row', axis=0)
print(res)
Результат выполнения кода:
a b
row1 1 4
row2 2 5
Смотрите также
-
атрибут
columns,
который возвращает названия столбцов -
атрибут
index,
который возвращает индексы строк -
метод
query,
который фильтрует строки по условию -
метод
select_dtypes,
который фильтрует столбцы по типу данных