python - 用 fillna 替换空值仍然会在 Pandas 中返回空值

标签 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

最佳答案

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/

相关文章:

python - 如何使用 python 发送加密和 dkim 签名的邮件?

python - 如何在 Python 中使用 pickle 在文件系统上加载 .dataframe 文件

python - 如何读取多个csv文件并合并它们?

python - 用另一个数据框列值中的值填充数据框列

pandas - 在将第一行与第二个 DF 中的多行进行比较后,将 DF 中的每一行映射到另一个 DF 中的行的最佳方法是什么?

python - 搜索 csv 文件,这是最佳实践?

python - 如何让 SQLAlchemy 与现有数据库一起使用 mysql

python - 处理错误 "TypeError: Expected tuple, got str"将 CSV 加载到 pandas 多级和多索引 (pandas)

python - 通过滚动方式分组 pandas

适合我的缓存的 Python 数据类型