#python #pandas
#python #панды
Вопрос:
Я пытаюсь объединить 3 фрейма данных по общему столбцу «Страна», но когда я это делаю, длина df сокращается до 6. Вот быстрые снимки трех исходных фреймов данных. [
Их длины равны 227, 264 и 15 соответственно. Однако, когда я объединяю их, я получаю это с длиной всего 6 записей (проверяю с помощью len(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. Именно то, что я искал. Спасибо.