我正在尝试用 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
最佳答案
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')
关于python - 用 fillna 替换空值仍然会在 Pandas 中返回空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49682673/