pandas 将DataFrame中的NaN值替换为序列中的值

uqdfh47h  于 2022-12-02  发布在  其他
关注(0)|答案(1)|浏览(161)

我正在尝试实现的代码将做以下与Pandas。

def fill_in_capabilities(df):
    capacity_means = df.groupby("LV_Name").mean(["LEO_Capa", "GTO_Capa"])

    for row in df:
        if np.isnan(row["LEO_Capa"]):
            row["LEO_Capa"] = capacity_means[row["LV_Name"]]

    return df

基本上,对于df中列"LEO_Capa"中的值是NaN的行,我想用序列capacity_means中的值替换那里的值,该序列的索引是df中列"LV_Name"中的值,该值是缺失的值。对于Pandas,该如何做呢?因为那里的代码不起作用。谢谢。

cwdobuhd

cwdobuhd1#

您可以使用函数:

def fill_in_capabilities(df: pd.DataFrame) -> pd.DataFrame:
    df[["LEO_Capa", "GTO_Capa"]] = df[["LEO_Capa", "GTO_Capa"]].fillna(
        df.groupby("LV_Name")[["LEO_Capa", "GTO_Capa"]].transform("mean")
    )

    return df

df = fill_in_capabilities(df)

相关问题