Как выполнить левое соединение и игнорировать значение по умолчанию?Python

Программы на Python
Гость
Как выполнить левое соединение и игнорировать значение по умолчанию?

Сообщение Гость »


Таблица df1 (фрейм данных Pandas):

id1 тип кота 0 1 а 0 1 1 б 0 2 2 а 8 3 2 а 9 Таблица df2:

тип id2 cat 0 0 а 8 1 0 а 9 2 1 а 8 3 1 а 9 4 2 а 8 5 3 а 9 6 4 б 7 7 5 б 8 Я выполняю левое соединение:

merged = pd.merge(df1, df2, How='left') Я снова делаю это с Pandas, но я мог бы использовать SQL и получаю:

тип id1 cat id2 0 1 а 0 НЭН 1 1 б 0 НЭН 2 2 а 8 0,0 3 2 а 8 1,0 4 2 а 8 2.0 5 2 а 9 0,0 6 2 а 9 1,0 7 2 а 9 3,0 Однако я хочу рассматривать 0 в столбце cat df1 как подстановочный знак, как будто он включает ВСЕ категории. У него нет выражения, поэтому его следует исключить из слияния.

В этом примере результат будет включать все строки из df2, поскольку совпадать должен только столбец type.

Вернуться в «Python»