Size: a a a

Python для анализа данных

2020 November 16

PZ

Pavel Zheltouhov in Python для анализа данных
еще подумал и кажется я слишком запутываю
просто связь многие к одному :
из 
(1,'A')  (10,'A','ZZZ')
(2,'A')
(3,'B')
Нужно получить
(1,'A','ZZZ')
(2,'A','ZZZ')
(3,'B')
источник

R

Ruslan in Python для анализа данных
Так если эти данные у тебя представлены в виде датафрейма пандас то достаточно написать merge с параметром how=“left” и указанием столбца по которому будет происходить соединение
источник

R

Ruslan in Python для анализа данных
А если данные представлены в виде фиксированного числа кортежей то нужен цикл по числу кортежей + использование списков
источник

R

Ruslan in Python для анализа данных
Вообще не очень понятна задача. Страдает формулировка
источник

PZ

Pavel Zheltouhov in Python для анализа данных
все, извиняюсь. затупил на пустом месте. Это обычное правое объединение
источник

R

Ruslan in Python для анализа данных
Правое? Попробуй левое 😂
источник

PZ

Pavel Zheltouhov in Python для анализа данных
нет) у меня правое.
и еще фильтр пустых
источник

R

Ruslan in Python для анализа данных
Как вариант можешь использовать функцию isin
источник

R

Ruslan in Python для анализа данных
Строчка меньше будет
источник

PZ

Pavel Zheltouhov in Python для анализа данных
да, действительно в нарисованном случае должно быть левое.
источник

PZ

Pavel Zheltouhov in Python для анализа данных
но нет. все равно их мало.

Короче проще в sql выгрузить будет
источник

PZ

Pavel Zheltouhov in Python для анализа данных
С левым и последующей фильтраций  я получаю  один к одному:

(1,'A','ZZZ')


а  надо 2 значения где 'A'
источник

R

Ruslan in Python для анализа данных
Значит что то не так прописываешь . Не может быть такого. Merge работает по аналогии с join
источник

PZ

Pavel Zheltouhov in Python для анализа данных
то есть, по-нормальному это делал бы sql с depended subquery
источник

V

Vladimir in Python для анализа данных
Больше похоже на cross join
источник

PZ

Pavel Zheltouhov in Python для анализа данных
блин так с  cross join память сразу кончается(
источник

AD

Artemiy Dubovoy in Python для анализа данных
Vladimir
Больше похоже на cross join
Не, иногда правда полезно. Например, для каждой строки с позицией прайслиста вывести минимальную дату заказа. Для этого нужно в подзапрос к таблице заказов прокидывать id товара в where
источник

AD

Artemiy Dubovoy in Python для анализа данных
Но вообще такие запросы обычно можно переделать таким образом, чтобы подобных зависимостей не было. И так нужно делать, потому что у зависимых подзапросов сумасшедшие косты
источник

PZ

Pavel Zheltouhov in Python для анализа данных
ну может я не по моде делаю?

У меня слева тикеты. Справа ручная разметка в виде текстов . И  текст совпадает сразу с  множеством тикетов.
Как теперь сразу получить помеченные тикеты ?
источник

PZ

Pavel Zheltouhov in Python для анализа данных
Artemiy Dubovoy
Но вообще такие запросы обычно можно переделать таким образом, чтобы подобных зависимостей не было. И так нужно делать, потому что у зависимых подзапросов сумасшедшие косты
ето ложные воспоминания о sql)
источник