Pandas предоставляет ряд методов фильтрации данных, включая reindex(), apply() и map() . Однако при применении нескольких фильтров эффективность становится проблемой.
Для оптимизации фильтрации рассмотрите возможность использования логического индексирования. И Pandas, и Numpy поддерживают логическое индексирование, которое работает непосредственно с базовым массивом данных без создания ненужных копий.
Вот пример логического индексирования:
df.loc[df['col1'] >= 1, 'col1']
Это выражение возвращает серию Pandas, содержащую только строки, в которых значения в столбце col1 больше или равны 1.
To применять несколько фильтров, использовать логические операторы «&» (И) и «|» (ИЛИ). Например:
df[(df['col1'] >= 1) & (df['col1'] <=1 )]
Это выражение возвращает DataFrame, содержащий только те строки, где значения в столбце 'col1' находятся между 1 и 1 включительно.
Для вспомогательные функции, рассмотрите возможность определения функций, которые принимают DataFrame и возвращают логический ряд, что позволяет комбинировать несколько фильтров с помощью логических операторов.
def b(x, col, op, n):
return op(x[col],n)
def f(x, *b):
return x[(np.logical_and(*b))]
В Pandas 0.13 представлен метод query(), который обеспечивает более эффективный способ выражения сложных условий фильтрации. Предполагая действительные идентификаторы столбцов, следующий код фильтрует DataFrame df на основе нескольких условий:
df.query('col1 <= 1 & 1 <= col1')
Таким образом, логическое индексирование предлагает эффективный метод применения нескольких фильтров к кадрам данных или сериям Pandas без создания ненужных копий. Используйте логические операторы и вспомогательные функции для объединения нескольких фильтров для расширения функциональности.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3