У меня есть 2 кадра данных, один из которых имеет дополнительную информацию для некоторых (но не всех) строк в другой.
names = df({'names':['bob','frank','james','tim','ricardo','mike','mark','joan','joe'],
'position':['dev','dev','dev','sys','sys','sys','sup','sup','sup']})
info = df({'names':['joe','mark','tim','frank'],
'classification':['thief','thief','good','thief']})
Я хотел бы взять столбец классификации из фрейма info
выше и добавить его в names
dataframe выше. Однако, когда я делаю combined = pd.merge(names, info)
, результирующий фреймворк имеет длину всего 4 строки. Все строки, которые не имеют дополнительной информации, отбрасываются.
В идеале, у меня будут значения в тех недостающих столбцах, которые установлены на неизвестные. Результируя в кадре данных, где некоторые люди являются тетивами, некоторые из них хороши, а остальные неизвестны.
EDIT: Один из первых ответов, которые я получил, предложил использовать слияние, которое, похоже, делает некоторые странные вещи. Вот пример кода:
names = df({'names':['bob','frank','bob','bob','bob''james','tim','ricardo','mike','mark','joan','joe'],
'position':['dev','dev','dev','dev','dev','dev''sys','sys','sys','sup','sup','sup']})
info = df({'names':['joe','mark','tim','frank','joe','bill'],
'classification':['thief','thief','good','thief','good','thief']})
what = pd.merge(names, info, how="outer")
what.fillna("unknown")
Странно то, что в результате я получаю строку, где результирующее имя "bobjames", а другое - "devsys". Наконец, несмотря на то, что законопроект не отображается в названии dataframe, он отображается в результирующем фрейме. Поэтому мне действительно нужно найти способ поиска значения в этом другом фрейме данных, и если вы найдете что-то в этом столбце.