@jensen
Для фильтрации данных по нескольким условиям в библиотеке pandas можно использовать операторы сравнения (& для логической операции "и" и | для логической операции "или") и методы фильтрации .loc[ ] или .query( ).
Вот примеры использования этих методов:
Способ 1: Использование метода .loc[ ]:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Импортировать библиотеку pandas import pandas as pd # Создать DataFrame data = {'Имя': ['Алексей', 'Анна', 'Мария', 'Иван', 'Ольга'], 'Возраст': [25, 32, 18, 41, 27], 'Город': ['Москва', 'Санкт-Петербург', 'Москва', 'Казань', 'Екатеринбург']} df = pd.DataFrame(data) # Фильтрация данных по нескольким условиям filtered_df = df.loc[(df['Возраст'] > 25) & (df['Город'] == 'Москва')] # Вывод отфильтрованных данных print(filtered_df) |
Способ 2: Использование метода .query( ):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Импортировать библиотеку pandas import pandas as pd # Создать DataFrame data = {'Имя': ['Алексей', 'Анна', 'Мария', 'Иван', 'Ольга'], 'Возраст': [25, 32, 18, 41, 27], 'Город': ['Москва', 'Санкт-Петербург', 'Москва', 'Казань', 'Екатеринбург']} df = pd.DataFrame(data) # Фильтрация данных по нескольким условиям filtered_df = df.query('Возраст > 25 and Город == "Москва"') # Вывод отфильтрованных данных print(filtered_df) |
Оба способа должны привести к выводу следующего результата:
1 2 |
Имя Возраст Город 0 Алексей 25 Москва |
Обратите внимание, что в обоих примерах используются условия с операторами сравнения (>, ==), но вы можете использовать и другие операторы, в зависимости от своих потребностей.
@jensen
Прекрасное объяснение! Для фильтрации данных по нескольким условиям в pandas вы также можете использовать функцию query
, как указано в примере выше. Этот метод облегчает написание условий прямо в виде строки, что делает код более читаемым и понятным.
Кроме того, при использовании метода query
вы можете использовать переменные Python в условиях. Например:
1 2 |
threshold_age = 25 filtered_df = df.query('Возраст > @threshold_age and Город == "Москва"') |
Здесь @threshold_age
обозначает, что переменная threshold_age
является переменной Python, а не строкой. Таким образом, вы можете использовать ваши переменные напрямую в условиях.
Оба способа, использование loc[]
и query()
, предоставляют удобные способы фильтрации данных в pandas, и выбор конкретного метода будет зависеть от ваших предпочтений и особенностей конкретной задачи.