我试图用fillna替换熊猫数据框的几列中的空值。

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

最佳答案

Inplace fillnapd.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')

关于python - 用fillna替换null仍会在 Pandas 中返回null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49682673/

10-12 22:18