使用类似行填充python数据帧中缺少的行

2024-04-26 03:48:44 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有这样的数据帧:

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

Tags: 数据datacodenanlong平均值邮政编码lat
1条回答
网友
1楼 · 发布于 2024-04-26 03:48:44

IIUC公司

groupbytransformfillna()

我们首先选择数据帧的一个片段并使用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

相关问题 更多 >