Почему df.merge() уменьшает размер фрейма данных таким образом?

#python #pandas

#python #панды

Вопрос:

Я пытаюсь объединить 3 фрейма данных по общему столбцу «Страна», но когда я это делаю, длина df сокращается до 6. Вот быстрые снимки трех исходных фреймов данных. энергия[GDPScimEn
ScimEn

Их длины равны 227, 264 и 15 соответственно. Однако, когда я объединяю их, я получаю это с длиной всего 6 записей (проверяю с помощью len(df)) dfЯ использую

 df = ScimEn.merge(energy).merge(GDP)
  

df.set_index('Country', inplace=True)

Комментарии:

1. Пожалуйста, не публикуйте изображения, всем будет проще, если вы скопируете и вставите выходные данные интерпретатора.

Ответ №1:

Это потому, что объединение по умолчанию .merge() является внутренним соединением, как описано в документации здесь . Затем ваше слияние возвращает только набор строк, который Country находится во всех трех фреймах данных. Вместо этого вы должны попытаться указать, какой тип соединения вы хотите, с ключевым how: {‘left’, ‘right’, ‘outer’, ‘inner’}, default ‘inner’ словом . Например, внешнее соединение:

 df = ScimEn.merge(energy, how='Outer').merge(GDP, how='Outer')
  

Комментарии:

1. Именно то, что я искал. Спасибо.