用 fillna 替换空值仍然 returns pandas 中的空值

Replacing nulls by fillna still returns nulls in pandas

我正在尝试用 fillna 替换 pandas 数据框的几列中的空值。

df["A"].fillna("Global", inplace=True)
df["B"].fillna("Global", inplace=True)
df["C"].fillna("Global", inplace=True)
df["D"].fillna("Global", inplace = True)

空值似乎没有被完全替换为 df.isnull().sum() A、B、C 和 D 列仍然 returns 非零值。

下面的我也试过了,好像没什么区别。

df["A"] = df["A"].fillna("Global", inplace=True)
df["B"] = df["B"].fillna("Global", inplace=True)
df["C"] = df["C"].fillna("Global", inplace=True)
df["D"] = df["D"].fillna("Global", inplace=True)

以下是我的示例数据,其中包含 NAN

id                 A        B                             D
630940            NaN       NaN         ...             NaN   
630941            NaN       NaN         ...             NaN

Inplace fillna 不适用于 pd.Series 列,因为它们 return 一个副本,并且副本被修改,原始文件保持不变。

为什么不直接做 -

df.loc[:, 'A':'D'] = df.loc[:, 'A':'D'].fillna('Global') 

或者,

df.loc[:, ['A', 'B', 'C', 'D']] = df.loc[:, ['A', 'B', 'C', 'D']].fillna('Global')