169 похожих чатов

У меня есть три таблицы: users с колонками user_id и

reg_time,
sessions с колонками user_id, open_time, close_time
и таблица levels с колонками user_id, upgrade_time и level

Конечная задача - посчитать сколько времени уходит у каждого пользователя на апгрейд между каждым уровнем.

Сейчас на скрине таблицы смерджины неверно. Расскажу почему и задам вопрос.
Сейчас в левой части таблицы находятся user_id, даты регистрации, время начала и окончания сессии. В правой части - уровни и время апгрейда. Если приглядеться, то можно увидеть, что количество строк в левой части растянулось на количество уровней в правой части для каждого пользователя для каждой сессии. И похоже, как будто в каждую сессию пользователь начинает путь по уровням заново, но время апгрейдов пересекается как с прошлыми, так и с текущими, так и с будущими сессиями.
По идее надо слить таблицы так, чтобы время апгрейда приходилось на то окно сессии, которое ему соответствует.
В SQL можно зашить что-то подобное через объединение по признаку RIGHT JOIN on levels.upgrade_time < sessions.close_time AND levels.upgrade_time > sessions.open_time
Как это сделать в python?
Затем я обновлю расчет разниц между датами.

2 ответов

31 просмотр

Оба ответа хороши https://stackoverflow.com/questions/50573457/pandas-equivalent-of-sql-non-equi-join

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта