Допустим, у меня есть pd DataFrame, который выглядит следующим образом:
price volume cat_count
zipcode date
91111.0 01/01/2018 10 5 NaN
02/10/2018 NaN 9 NaN
94312.0 04/04/2018 7 4 6
02/10/2018 NaN 3 4
96666.0 05/05/2018 NaN 3 14
02/10/2018 NaN NaN 8
07/08/2018 NaN 0 NaN
98432.0 06/08/2018 4 NaN NaN
И, скажем, у меня есть словарь, ключи которого - это почтовые индексы, а значения - это списки соседних почтовых индексов (в пределах x километров от того, что они вводят почтовый индекс), отсортировано по тому, насколько близко они находятся к ключевому почтовому индексу, причем ближе появляются первые.Этот словарь выглядит следующим образом:
nearby_zips = {
91111.0 : [94312.0],
94312.0 : [91111.0, 96666.0],
96666.0 : [94312.0],
98432.0 : []
}
Как я могу эффективно интерполировать данные, чтобы, если для любого столбца все значения были NaN в индексе почтового индекса, найти ближайший почтовый индекс, который имеет значения, отличные от NaN для указанного столбца,и используйте эти значения для заполнения почтового индекса, в котором есть все значения NaN для столбца.
Для справочного вывода в приведенном выше примере DataFrame будет выглядеть следующим образом:
price volume cat_count
zipcode date
91111.0 01/01/2018 10 5 NaN
02/10/2018 NaN 9 4
04/04/2018 NaN NaN 6
94312.0 04/04/2018 7 4 6
02/10/2018 NaN 3 4
96666.0 05/05/2018 NaN 3 14
02/10/2018 NaN NaN 8
07/08/2018 NaN 0 NaN
04/04/2018 7 NaN NaN
98432.0 06/08/2018 4 NaN NaN
Обратите внимание на данныев почтовых индексах 91111.0 и 96666.0 и как они изменились.