使用类似的行填充python数据帧中缺少的行
假设我有这种数据帧:使用类似的行填充python数据帧中缺少的行,python,pandas,numpy,missing-data,Python,Pandas,Numpy,Missing Data,假设我有这种数据帧: 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,最好只
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)的平均值。
如何将其推广到大型数据集
- 对于NaN数据为Lat/Long的每一行,
- 查找具有相同邮政编码的其他行
- 然后计算平均值
- 并用它来代替NAN
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
我已经用更多的NAN测试了代码,效果非常好!这太好了,巴拉卡·阿拉胡·菲克!واياك حبيبي عفوا