Pandas将NaN替换为空白/空字符串

cedebl8k  于 2023-05-12  发布在  其他
关注(0)|答案(8)|浏览(372)

我有一个Pandas Dataframe,如下所示:
我想用一个空字符串删除NaN值,使其看起来像这样:

xuo3flqw

xuo3flqw1#

df = df.fillna('')

这将填充na’s(例如NaN's)与''
inplace是可能的,但应避免为it makes a copy internally anyway, and it will be deprecated

df.fillna('', inplace=True)

要仅填充单个列,请执行以下操作:

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

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

slhcrj9b

slhcrj9b2#

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

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

h5qlskok

h5qlskok3#

如果您从文件(例如CSV或Excel)阅读 Dataframe ,则用途:

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

这将自动将空字段视为空字符串''
如果您已经有了 Dataframe

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

myzjeezk4#

使用格式化程序,如果您只想格式化它,以便它在打印时呈现得很好。只需使用df.to_string(... formatters来定义自定义字符串格式,而无需不必要地修改DataFrame或浪费内存:

df = pd.DataFrame({
    'A': ['a', 'b', 'c'],
    'B': [np.nan, 1, np.nan],
    'C': ['read', 'unread', 'read']})
print df.to_string(
    formatters={'B': lambda x: '' if pd.isnull(x) else '{:.0f}'.format(x)})

获取:

A B       C
0  a      read
1  b 1  unread
2  c      read
moiiocjp

moiiocjp5#

试试这个
添加inplace=True

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

kiayqfof6#

使用keep_default_na=False可以帮助您:

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

nukf8bse7#

如果您正在将DataFrame转换为JSON,则NaN将给予错误,因此在此用例中,最佳解决方案是将NaN替换为None
具体操作如下:

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

pbossiut8#

我尝试用nan处理一列字符串值。
删除nan并填充空字符串:
df.columnname.replace(np.nan,'',regex = True)
要删除nan并填充一些值,请执行以下操作:
df.columnname.replace(np.nan,'value',regex = True)
我也试过了。但是它需要列的索引。所以你得再看一遍table简单地,上述方法减少了一个步骤。

相关问题