使用类似的行填充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
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

我已经用更多的NAN测试了代码,效果非常好!这太好了,巴拉卡·阿拉胡·菲克!واياك حبيبي عفوا