Python 将对象/分类变量中的空值替换为NaN

Python 将对象/分类变量中的空值替换为NaN,python,dataframe,nan,Python,Dataframe,Nan,所以我搜索了很多关于如何用NaN替换空值的有用线索。然而,我不能让他们中的任何人在我的数据帧上工作 我用过: df.replace('', np.NaN) df3 = df.applymap(lambda x: np.nan if x == '' else x) 甚至: df.iloc[:,86:350] = df.iloc[:,86:350].apply(lambda x: x.str.strip()).replace('', np.nan) 代码运行正常,没有错误,但当我查看数据帧时,仍

所以我搜索了很多关于如何用NaN替换空值的有用线索。然而,我不能让他们中的任何人在我的数据帧上工作

我用过:

df.replace('', np.NaN)
df3 = df.applymap(lambda x: np.nan if x == '' else x)
甚至:

df.iloc[:,86:350] = df.iloc[:,86:350].apply(lambda x: x.str.strip()).replace('', np.nan)
代码运行正常,没有错误,但当我查看数据帧时,仍然有b''值,而不是NaN。你知道我遗漏了什么吗


很抱歉,我没有给出代码来重现这一点,因为我不知道怎么做,因为我怀疑这是特定于我从SPSS导入的数据帧的,如果有帮助的话,这些值是SPSS中的字符串变量

您的第二次尝试很接近:

df = df.applymap(lambda x: np.NaN if not x else x)
要显示
'
b'
在条件中都将计算为
True
,请执行以下操作:

l = ['', b'']

for x in l:
    if x:
       print ('Not empty')
    else:
       print ('Empty')

>>> Empty
>>> Empty
样本:

from pandas import DataFrame
from numpy import NaN

df = DataFrame([[1,2,''], ['',b'',3], [4, 5, b'']])
print (df)

# Output
    0    1    2
0   1    2    
1      b''    3
2   4    5  b''

df2 = df.applymap(lambda x: NaN if not x else x)
print (df2)

# Output
    0    1    2
0   1    2  NaN  
1 NaN  NaN    3
2   4    5  NaN
df.replace(“”,np.NaN,inplace=True)
b'!“”?您的
'
值现在是否为NaN?