Проблема в том, что индексы не совпадают.При первоначальном заполнении фрейма данных processor
вы используете каждую строку из исходного фрейма данных, который содержал данные о рождаемости.Эти строки отличаются от тех, которые содержат данные больничных коек, поэтому когда вы делаете
processor["Hospital beds per 100 people"] = Hospital_Data
, панды создадут новый столбец, но поскольку для * 1007 нет соответствующих индексов* в processor
он будет содержать только нулевые значения.
Вероятно, вы в первую очередь захотите переиндексировать исходные данные, используя код страны и год
data.set_index(['CountryCode','Year'], inplace=True)
Затем вы можете создать представление только интересующих вас индикаторов
indicators = ['SH.MED.BEDS.ZS', 'SP.DYN.CBRT.IN']
dview = data[data.IndicatorCode.isin(indicators)]
Наконец, вы можете pivot на коде индикатора для просмотракаждый индикатор в одной строке
dview.pivot(columns='IndicatorCode')['Value']
Но учтите, что в нем все равно будет много NaN.Это просто потому, что данные больничной койки обновляются очень редко (или, например, на Арубе нет вообще).Но вы можете отфильтровать их по мере необходимости.