【问题标题】:What's the string equivalent of np.nan?np.nan 的字符串等价物是什么?
【发布时间】:2020-06-03 22:40:59
【问题描述】:

我有一个数据框,想添加一个空白列。如果是数字,我会使用df["new_column"] = pd.np.nan。但是,如果我希望该列 (a) 保存字符串,并且 (b) 可以使用 pd.isnull() 进行过滤,该怎么办?还有比df["new_column"] = ""更好的主意吗?

【问题讨论】:

  • 你可以使用无关键字
  • pd.isnull 可以很好地处理字符串(不像np.isnan,它会引发错误)。为什么不直接使用np.nan
  • @Fortunato,因为当你尝试将字符串插入以pd.nan初始化的列时,Python会抛出异常
  • @DimitriShvorob,我可能误解了您要做什么。你能举个例子吗?这对我来说似乎很好用:a=pd.DataFrame([[1,2],[3,4]], columns=['col1', 'col2']); a['new_col'] = pd.np.nan; a['new_col'].iloc[0] = 'p'

标签: python pandas null nan


【解决方案1】:

据我了解,Python 没有 Null 字符串。 Python 确实有一个 None 值,但它不是一个字符串,它是一个可以应用于所有变量的 None ——不仅仅是那些最初定义为字符串的变量。

您可以使用 NoneType 但该列将不是字符串而是对象类型。您仍然可以在列中插入字符串,但是将列的类型更改为字符串只会将 None 值视为字符串 'None'

也请看这个:What is the difference between NaN and None?

test_df = pd.DataFrame(data={'numbers_column':np.nan,
                             'strings_column':[None, None, None,'random_str']},
                              index=[1,2,3, 4])

希望这会有所帮助。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-17
  • 1970-01-01
  • 1970-01-01
  • 2014-05-08
  • 1970-01-01
  • 2014-06-12
相关资源
最近更新 更多