Тебе нужно понимать чем ты готов жертвовать памятью или скоростью. На маленьких данных разницы того или иного способа нету. Но на больших ты начнёшь чувствовать разницу.
В любом из случаем под май какой из спососов будет более читабельным для любого следующего инжинеров кто будет читать твой код. Не все знакомы с пандасом, да и читать в коде создание второго словаря не всегда очевидно и это может сильно ухудшить читаемость твоего кода.
Главное не усложнять. Rule of thumb - пройтись через значения используя цикл и проверить значения через условие (if). Сложность алгоритма (стоимость) будет линейная (O(N)). Так будет читаться лучше. Если можешь себе позволить линейную сложность, то бери этот способ.
В целом почитай про асимптотическую сложность алгоритмов и выделение памяти. Твоя эффективность как программиста вырастет
Например, если ты будешь дергать эту функцию (линейной сложности) внутри другого цикла, то ты можешь привести к квадратичной сложности, и тогда все очень плохо.