当前位置: 首页 > 知识库问答 >
问题:

在Pandas中用NaN替换空字符串

魏雅惠
2023-03-14

我有一个熊猫数据框(通过导入csv文件创建)。我想用NaN替换空白值。这些空白值中有些是空的,有些包含(可变数量的)空格''',等等。

使用这个线程中的建议

df.replace(r'\s+', np.nan, regex=True, inplace = True)

它会替换所有只包含空格的字符串,但也会替换每个包含空格的字符串,这不是我想要的。

如何仅用空格和空字符串替换字符串?

共有2个答案

壤驷穆冉
2023-03-14

如果您正在读取csv文件,并希望在读取文件本身时将所有空字符串转换为nan,则可以使用该选项

skipinitialspace=True

示例代码

pd.read_csv('Sample.csv', skipinitialspace=True)

这将删除分隔符后出现的任何空格,从而使所有空字符串成为nan

从文件中http://pandas.pydata.org/pandas-docs/stable/io.html

注意:此选项甚至会从有效数据中删除前面的空白,如果出于任何原因希望保留前面的空白,则此选项不是一个好的选择。

经兴安
2023-03-14

指示它必须以空格开头,以带^和$的空格结尾:

df.replace(r'^\s*$', np.nan, regex=True, inplace = True)
 类似资料:
  • 我有一个数据框,如下所示: 我想用一个空字符串删除NaN值,这样看起来像这样:

  • 问题内容: 我有一个Pandas Dataframe,如下所示: 我想用一个空字符串删除NaN值,使其看起来像这样: 问题答案: 这可能会有所帮助。它将用空字符串替换所有NaN。

  • 像这样的空字符串isnull()找不到空字符串

  • 问题内容: 我是pandas的新手,我正在尝试在Dataframe中加载csv。我的数据缺少表示为的值?,而我正尝试将其替换为标准的Missing值-NaN 请帮助我。我曾尝试阅读过Pandas文档,但无法遵循。 数据 成人数据 问题答案: 您可以使用: 或整个df: 更新 好的,我已经解决了您的问题,默认情况下,如果您不传递分隔符,则将逗号作为分隔符。 您的数据,尤其是一行有问题的示例: 实际上

  • 我有下表(df): 我想用empty_row替换dataframe中的NaNs。我该怎么做? 我怎么解决这个?

  • 问题内容: 我想在包含空格(任意数量)的Pandas数据框中找到所有值,并用NaN替换这些值。 有什么想法可以改善吗? 基本上我想把这个: 变成这个: 我已经用下面的代码做到了,但是这很丑。这不是Pythonic,而且我敢肯定,这也不是最有效的熊猫使用方式。我遍历每一列,并对通过应用对每个值进行正则表达式搜索的函数生成的列掩码进行布尔替换,在空白处进行匹配。 通过仅迭代可能包含空字符串的字段,可以