假设我有一个如下所示的 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 中的数据以及它们的变化方式。