DataFrame.filter()

Метод filter() возвращает подмножество DataFrame по меткам индекса или столбцов. Поддерживает выбор по точным именам, подстроке (like) или регулярному выражению.

Примечание

filter() фильтрует по меткам, а не по значениям. Для фильтрации по значениям используйте булеву маску или Series.between().

Сигнатура

DataFrame.filter(items=None, like=None, regex=None, axis=None)

Параметры

  • items — список точных меток.

  • like — строка-подстрока для поиска в метках.

  • regex — регулярное выражение.

  • axis — 0 (строки) или 1 (столбцы, default для DataFrame).

Возвращаемое значение

DataFrame с отобранными метками.

Примеры

Пример 1. Выбор столбцов по списку

import pandas as pd

df = pd.DataFrame({"a": [1, 2], "b": [3, 4], "c": [5, 6]})
print(df.filter(items=["a", "c"]))
   a  c
0  1  5
1  2  6

Пример 2. Поиск по подстроке

Выбираем столбцы датчиков, начинающихся со «sensor_»:

import pandas as pd

df = pd.DataFrame({
    "sensor_temp": [22, 23],
    "sensor_hum":  [60, 58],
    "timestamp":   ["t0", "t1"],
})
print(df.filter(like="sensor"))
   sensor_temp  sensor_hum
0           22          60
1           23          58

Пример 3. Регулярное выражение

import pandas as pd

df = pd.DataFrame({"x1": [1], "x2": [2], "y1": [3]})
print(df.filter(regex=r"^x"))
   x1  x2
0   1   2

Пример 4. Фильтр строк (axis=0)

import pandas as pd

df = pd.DataFrame(
    {"v": [1, 2, 3]},
    index=["alpha", "beta", "gamma"],
)
print(df.filter(like="a", axis=0))
       v
alpha  1
beta   2
gamma  3

Пример 5. Точечный выбор строк по items

import pandas as pd

df = pd.DataFrame({"v": [10, 20, 30]}, index=["a", "b", "c"])
print(df.filter(items=["a", "c"], axis=0))
   v
a  10
c  30

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.