Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
 Аватар для VistaSV30
987 / 331 / 79
Регистрация: 10.04.2012
Сообщений: 1,241
Записей в блоге: 4

Pandas создать маску по нескольким условиям

19.09.2022, 22:15. Показов 3238. Ответов 2

Студворк — интернет-сервис помощи студентам
Добрый день!
Подскажите как создать маску по нескольким условиям
Python
1
2
3
4
5
6
7
8
9
10
import pandas as pd
d = pd.DataFrame({'N': [1,1,2,3,4,5]})
 
# Ни один из этих способов не работает
# mask = d.N == 1 | d.N == 2 | d.N == 3
# mask = d.N == 1 or d.N == 2 or d.N == 3
# mask = d.N in [1,2,3]
 
d.loc[mask, 'N'] = 0
print(d)
Спасибо!

Добавлено через 34 минуты
Пока ничего лучше не придумал
Python
1
2
3
4
5
6
7
8
9
10
11
12
import pandas as pd
d = pd.DataFrame({'N': [1,1,2,3,4,5]})
print(d)
 
def rep(old, new):
    mask = d.N == old
    d.loc[mask, 'N'] = new
    
dm = {1: 0, 2: 0, 3: 0}
for k,v in dm.items(): rep(k,v) 
    
print(d)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.09.2022, 22:15
Ответы с готовыми решениями:

Pandas - удалить строки по нескольким условиям
Добрый день! Мне нужно удалить из фрейма строки по следующим условиям: - в столбце A значения не принадлежат диапазону T И - в...

Pandas - сортировака и фильтр по нескольким условиям
Приветствую! Помогите с решением: Есть dataframe, задача отсортировать строки по возрастанию по значениям трёх столбцов (А, В, С)...

Как создать список по нескольким условиям if в цикле for
Коллеги, Я начинающий программист и у многих мой вопрос вызовет улыбку. В ниже приведенном фрагменте кода я считываю и обрабатываю в...

2
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
20.09.2022, 03:15
Лучший ответ Сообщение было отмечено VistaSV30 как решение

Решение

Python
1
mask = (d.N == 1) | (d.N == 2) | (d.N == 3)
или так
Python
1
mask = d.N.isin([1,2,3])
Добавлено через 16 секунд
VistaSV30, дело в том, что побитовые И, ИЛИ (&, |) и логические (and, or) - разные операции с разным приоритетом, причем этот приоритет находится по разные стороны от проверки на равенство.
Побитовые операции в отличии от логических имеют более высокий приоритет, чем проверка на равенство.
Поэтому
Python
1
d.N == 1 | d.N == 2 | d.N == 3
пытался выполнить
Python
1
d.N == (1 | d.N) == (2 | d.N)  == 3
и взрывал мозг
5
 Аватар для VistaSV30
987 / 331 / 79
Регистрация: 10.04.2012
Сообщений: 1,241
Записей в блоге: 4
25.09.2022, 09:08  [ТС]
Небольшое добавление

Маска с противоположными условиями
Python
1
2
3
4
5
6
7
import pandas as pd
d = pd.DataFrame({'N': [1,1,2,3,4,5]})
print(d)
 
mask = d.N.isin([1,2,3])
    
print(d[~mask])
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.09.2022, 09:08
Помогаю со студенческими работами здесь

Как создать фильтр по нескольким условиям в поле, где дублируются данные?
Очень прошу помощи - голова закипает... Есть база данных рейсов автомобилей. В основной таблице "рейсы" есть поля: код, дата...

Фильтр по нескольким условиям
Добрый день. Я хочу выводить только те строки таблицы, которые соответствуют введенной информации в html форме. Столкнулась с проблемой:...

Поиск по нескольким условиям
Добрый день! С SQL начинаю только разбираться. Опыт есть, но только с запросами. Глобально никогда не вникал. Нужен поиск по нескольким...

массив по нескольким условиям
Здравствуйте, помогите пожалуйста составить программу Составить программу в которой происходит заполнение одномерного массива А c...

Выбор по нескольким условиям
Есть простой запрос mysqli_query($log_db, "SELECT * FROM users_db WHERE user_name='$e_mail' OR e_mail='$e_mail'"); Всё очень...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru