假设我有这种数据框:
Data: Lat Long Postal Code
0 41 32 01556
1 32 31 01023
2 31 33 01023
3 NaN NaN 01023
4 33 42 01775
5 40 44 01999
如您所见,第1,2,3行具有相同的邮政编码。因此,为了填充NaN,最好仅使用这两行的平均值(1,2)。 如何对大型数据集进行概括?
答案 0 :(得分:2)
IIUC,
groupby
,transform
,fillna()
我们首先选择一个数据框的一部分,并使用fillna
仅填充缺失的值,我们不想覆盖任何现有数据。
然后我们根据您的要求利用groupby
函数对邮政编码进行分组。
我们使用transform
方法返回具有原始索引和长度的数据。
我们将其分配给您的列,并得到如下结果。
df[["Lat", "Long"]] = df[["Lat", "Long"]].fillna(
df.groupby("Postal Code")["Lat", "Long"].transform("mean"))
print(df)
Data Lat Long Postal Code
0 0 41.0 32.0 1556
1 1 32.0 31.0 1023
2 2 31.0 33.0 1023
3 3 31.5 32.0 1023
4 4 33.0 42.0 1775
5 5 40.0 44.0 1999