У меня есть панд dataframe, который выглядит следующим образом:Вставить новые значения столбцов в dataframe с помощью MultiIndex?
rank num rank num
2015 2015 2014 2014
France 8 1200 9 1216
Italy 11 789 10 788
Я хочу, чтобы добавить новый столбец в мультииндексе, называемый corrected_num
, и я хочу, значение этого столбца будет значением num
для соответствующая строка, разделенная на число, полученное из другого словаря, который выглядит следующим образом:
b = {2015: 10, 2014: 12}
другими словами, я хотел бы закончить с чем-то вроде этого:
rank num num_corrected rank num num_corrected
2015 2015 2015 2014 2014 2014
France 8 1200 120 9 1216 101.3
Italy 11 789 78.9 10 788 65.6
До сих пор мой подход перебрать каждую строку в dataframe, то над каждой колонкой в строке, что-то вроде этого:
for i, row in df.iterrows():
for year in df.num.columns:
df.set_value(i, 'num_corrected, ' + year, row.frequency[year]/b[year])
Но когда я пытаюсь это мой Jupyter ноутбук замерзает, так что я надеясь, что есть лучший способ!
Это трудно сказать, если ваши годы являются второй уровень столбика мультииндексом или нет. Можете ли вы включить код для создания вашего фрейма данных? – Alex