【问题标题】:How do I test for blanks in array (dtype object)?如何测试数组(dtype 对象)中的空白?
【发布时间】:2021-06-18 20:52:51
【问题描述】:

我有一个 df,里面有一些空格。每当有空白时,我希望能够用“0000”代替它。但是,我找不到替换数组中空白的方法。数组中的一些值是数字,但有时元素有多个数字,由“;”分隔。有人可以帮忙吗?

【问题讨论】:

  • 0000 "0000" 不同 在任何情况下,您的循环永远不会修改您的pd.Series。为什么你期望它会改变?
  • 我只是在寻找一种方法来识别它何时为空白。简单说明
  • 您不应该从这里开始使用 for 循环。你想要df.loc[df["Numbers"].isnull(), 'Numbers'] = 0
  • 空白是什么意思?空白不是标准术语。我想你的意思是NaN,在这种情况下,只需使用我上面显示的内容。虽然请注意,0000 * 与 0 相同,但您似乎实际上可能想要 string "0000",但同样的方法适用于任何一种方式
  • 感谢 0000 捕获 - 我如何将我的 df 修改为 1) 识别空白和 2) 将它们更改为新值?

标签: python python-3.x pandas dataframe numpy


【解决方案1】:

如果“空白”的意思是“NaN”,而“0000”的意思是“0000”的字符串而不是整数“0”,则以下内容应该有效:

df.loc[df['Numbers'].isnull(), 'Numbers'] = '0000'

这里发生了什么:

  1. .isnull() 是一个内置的 pandas 函数,它将检测条目是否为 NaN
  2. [df['Numbers'].isnull() 将仅返回数据框中“数字”列中有 NaN 的位置。
  3. df.loc[index, column] 将选择所有满足条件的行(索引)——在本例中为 isnull() == True——然后将这些行中的列中的值替换为指定的值,在本例中为字符串 ' 0000'。

欢迎来到熊猫!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 2020-06-08
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    • 2019-03-13
    • 2018-01-01
    相关资源
    最近更新 更多