Я не знаю, как выглядят ваши данные, но все, что я знаю, это то, что тип объединения влияет на то, как будут формироваться строки после объединения.
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.join.html
how : {‘left’, ‘right’, ‘outer’, ‘inner’}, default: ‘left’
How to handle the operation of the two objects.
left: use calling frame’s index (or column if on is specified)
right: use other frame’s index
outer: form union of calling frame’s index (or column if on is specified) with other frame’s index, and sort it lexicographically
inner: form intersection of calling frame’s index (or column if on is specified) with other frame’s index, preserving the order of the calling’s one
Попробуйте использовать 'inner' join и посмотрите, если это то, что вам нужно.
Это вернет только те строки, где pic_code найден в обоих фреймах данных и имеет mpe_wgt .
Кроме того, убедитесь, что у pic_code нет конечных / ведущих пробелов, чтобы схожий pic_code из двух кадров данных совпадал.