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.