【发布时间】:2019-09-30 11:36:58
【问题描述】:
我正在做一些房地产数据清理,遇到了这个新手问题,令人惊讶的是我自己无法解决。
我有这个数据框,它在 lat 和 lon 列中有 nan 值。我可以计算出输入给定邻域的纬度和经度平均值的几乎正确的值。
这是一个例子,实际的DF有2万多行。
lat lon neighborhood
-34.62 -58.50 Monte Castro
-34.63 -58.36 Boca
nan nan San Telmo
我使用以下代码为每个社区制作了两个带有 lat 和 lon 均值的字典:
neighborhood_lat = []
neighborhood_lon = []
for neighborhood in df['l3'].unique():
lat = df[((df['l3']==neighborhood) & (df['lat'].notnull()))].mean().lat
lon = df[((df['l3']==neighborhood) & (df['lon'].notnull()))].mean().lon
neighborhood_lat.append({neighborhood: lat})
neighborhood_lon.append({neighborhood: lon})
这是其中一个字典的一部分:
neighborhood_lat
[{'Mataderos': -34.65278757721805},
{'Saavedra': -34.551813882357166},
{nan: nan},
{'Boca': -34.63204552441155},
{'Boedo': -34.62695442446412},
{'Abasto': -34.603728937455315},
{'Flores': -34.62757516061659},
{'Nuñez': -34.54843158034983},
{'Retiro': -34.595564030955934},
{'Almagro': -34.60692879236826},
{'Palermo': -34.58274909271148},
{'Belgrano': -34.56304387233704},
{'Recoleta': -34.592081482406854},
{'Balvanera': -34.608665174550694},
{'Caballito': -34.61749059613885}
然后我尝试用这些字典填充 lat 和 lon,但我不明白如何为 fillna 设置一个条件,以便它根据邻域 lat 和 lon 的平均值填充 lat 和 lon。
预期结果
lat lon neighborhood
-34.62 -58.50 Monte Castro
-34.63 -58.36 Boca
(mean lat of neighborhood) (mean lon of neighborhood) San Telmo
感谢您的帮助。
【问题讨论】:
-
你想用每个邻域的平均值填充 nan,对吧?如果是这种情况,请增加您的数据,以便每个社区在您的数据中不止一次。
-
实际数据集包含超过 20k 行。这是一个例子
-
可能是,但在这种情况下,他们正在映射一整列而不仅仅是 nan 值
标签: python pandas numpy dataframe