在Pandas

时间:2016-11-21 02:28:23

标签: python pandas replace

我有一个pandas数据帧(通过导入csv文件创建)。我想用NaN替换空白值。其中一些空白值为空,一些空格包含{可变数量的空格''' '' '等。

使用this thread的建议

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

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

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

2 个答案:

答案 0 :(得分:9)

表示必须以空白开头,并以^和$:

结尾处于空白处
df.replace(r'^\s*$', np.nan, regex=True, inplace = True)

答案 1 :(得分:2)

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

skipinitialspace=True

示例代码

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

这将删除定界符后出现的所有空白,从而使所有空字符串都为nan

摘自文档http://pandas.pydata.org/pandas-docs/stable/io.html

  

enter image description here

注意: :此选项即使从有效数据中也会删除前一个空格,如果出于任何原因要保留前一个空格,则此选项不是一个好选择选择。