用fillna替换空值仍然会在pandas

时间:2018-04-05 22:48:21

标签: python pandas dataframe fillna

我正在尝试用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列返回非零值。

我也试过以下,似乎没有什么区别。

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

1 个答案:

答案 0 :(得分:1)

Inplace fillna不适用于pd.Series列,因为它们会返回副本,并且副本会被修改,原始版本保持不变。

为什么不这样做 -

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

或者,

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