【问题标题】:Rename "None" value in Pandas在 Pandas 中重命名“None”值
【发布时间】:2014-08-28 10:34:07
【问题描述】:

这可能非常简单,但我就是找不到答案。我使用 GeoPandas 从形状文件导入数据。把它变成熊猫DataFrame。我有一个包含三个字母代码和None 缺失数据值的对象字段。如何在熊猫中将None 更改为类似“vcv”的内容?我试过这个

sala.replace(None,"vcv")

收到此错误

   2400                                     "strings or regular expressions, you "
   2401                                     "passed a"
-> 2402                                     " {0!r}".format(type(regex).__name__))
   2403                 return self.replace(regex, value, inplace=inplace, limit=limit,
   2404                                     regex=True)

TypeError: 'regex' must be a string or a compiled regular expression or a list or dict of strings or regular expressions, you passed a 'bool'

试过了

if sala['N10'] is None:
    sala['N10'] = 'Nul'

不会改变任何东西。

【问题讨论】:

  • 你是指字符串'None'还是空字符串?
  • 您可以使用sala['N10'].isnull() 测试空值,因此您可以执行 sala.loc[sala['N10'].isnull(), 'N10'] = 'vcv'`应该可以工作
  • @Ajean:我认为您的回答 sala.fillna(value='vcv') 有效。为什么要删除?
  • 是的,它是“无”。 Ajean:我只需要该列来更改表中的所有内容,而不是像您建议的那样。我有很多数字,所以 vcv 是不行的。我正在合并一个文本字段,它不适用于 None。
  • 那么sala.loc[sala['N10'] == 'None', 'N10'] = 'vcv' 有效吗?

标签: python pandas null rename


【解决方案1】:

最简单的做法就是:

sala['N10'].replace('None', 'vcv', inplace=True)

应该可以的。

如果它们是真正的 NaN 值,那么调用 fillna 就可以了。

例如

sala['N10'].fillna(value='vcv', inplace = True)

也是我在评论中提出的建议:

sala.loc[sala['N10'].isnull(), 'N10'] = 'vcv'

【讨论】:

  • OK 小小姐通讯它是 None 没有价值,但是当你打印出来时说“None”。但它不是文本“无”。您的解决方案 sala.loc[sala['N10'].isnull(), 'N10'] = 'vcv' 效果很好。谢谢,马修
猜你喜欢
  • 2020-07-18
  • 2020-07-05
  • 1970-01-01
  • 2019-12-01
  • 2020-05-10
  • 2019-12-25
  • 2018-10-27
  • 2013-10-31
  • 2021-04-24
相关资源
最近更新 更多