将 nan 转换为 NaN 有多大用处?
How useful it is to convert nan to NaN?
我正在尝试 运行 已经由其他人编写的代码。但是,我不确定将 nan
转换为 NaN
需要什么
关于这个问题的一段代码行
obs['valuestring'].astype(str).str.strip().mask(obs['valuestring'].isna())
上面的行代码给出了这样的输出
不过我感觉下面这段代码应该没问题。不是吗?
obs['valuestring'].astype(str).str.strip()
并且它产生与上面相同的输出但是 nan
而不是 NaN
我知道 np.nan
是 np.NaN
,所以尝试学习这个有什么用处吗?我错过了吗?
你能帮我理解将 nan
转换为 NaN
的必要性吗?我应该何时进行此类转换?
这是不同的,因为第二个没有缺失值,但是 NaN
的字符串表示 - 字符串 nan
:
obs = pd.DataFrame({'valuestring':['a ', np.nan, np.nan]})
print (obs)
valuestring
0 a
1 NaN
2 NaN
s = obs['valuestring'].astype(str).str.strip().mask(obs['valuestring'].isna())
print (s)
0 a
1 NaN
2 NaN
Name: valuestring, dtype: object
print (s.isna())
0 False
1 True
2 True
Name: valuestring, dtype: bool
s = obs['valuestring'].astype(str).str.strip()
print (s)
0 a
1 nan
2 nan
Name: valuestring, dtype: object
print (s.isna())
0 False
1 False
2 False
Name: valuestring, dtype: bool
print (s.eq('nan'))
0 False
1 True
2 True
Name: valuestring, dtype: bool
我正在尝试 运行 已经由其他人编写的代码。但是,我不确定将 nan
转换为 NaN
关于这个问题的一段代码行
obs['valuestring'].astype(str).str.strip().mask(obs['valuestring'].isna())
上面的行代码给出了这样的输出
不过我感觉下面这段代码应该没问题。不是吗?
obs['valuestring'].astype(str).str.strip()
并且它产生与上面相同的输出但是 nan
而不是 NaN
我知道 np.nan
是 np.NaN
,所以尝试学习这个有什么用处吗?我错过了吗?
你能帮我理解将 nan
转换为 NaN
的必要性吗?我应该何时进行此类转换?
这是不同的,因为第二个没有缺失值,但是 NaN
的字符串表示 - 字符串 nan
:
obs = pd.DataFrame({'valuestring':['a ', np.nan, np.nan]})
print (obs)
valuestring
0 a
1 NaN
2 NaN
s = obs['valuestring'].astype(str).str.strip().mask(obs['valuestring'].isna())
print (s)
0 a
1 NaN
2 NaN
Name: valuestring, dtype: object
print (s.isna())
0 False
1 True
2 True
Name: valuestring, dtype: bool
s = obs['valuestring'].astype(str).str.strip()
print (s)
0 a
1 nan
2 nan
Name: valuestring, dtype: object
print (s.isna())
0 False
1 False
2 False
Name: valuestring, dtype: bool
print (s.eq('nan'))
0 False
1 True
2 True
Name: valuestring, dtype: bool