我有一个熊猫数据框架如下所示:

    1    2       3
 0  a  NaN    read
 1  b    l  unread
 2  c  NaN    read

我想用空字符串删除NaN值,使其看起来像这样:

    1    2       3
 0  a   ""    read
 1  b    l  unread
 2  c   ""    read

当前回答

使用keep_default_na=False可以帮助你:

df = pd.read_csv(filename, keep_default_na=False)

其他回答

import numpy as np
df1 = df.replace(np.nan, '', regex=True)

这可能会有所帮助。它将用一个空字符串替换所有的nan。

df = df.fillna('')

这将用“”填充na(例如NaN)。

Inplace是可能的,但应该避免使用,因为它将被弃用:

df.fillna('', inplace=True)

只填写一列:

df.column1 = df.column1.fillna('')

可以使用df['column1']代替df.column1。

如果你正在从一个文件(比如CSV或Excel)读取数据帧,那么使用:

df.read_csv(path , na_filter=False)
df.read_excel(path , na_filter=False)

这将自动将空字段视为空字符串。”


如果你已经有了数据框架

df = df.replace(np.nan, '', regex=True)
df = df.fillna('')

如果你正在将DataFrame转换为JSON, NaN将会给出错误,所以在这个用例中最好的解决方案是将NaN替换为None。 以下是如何做到的:

df1 = df.where((pd.notnull(df)), None)

试试这个,

添加原地= True

import numpy as np
df.replace(np.NaN, '', inplace=True)