当前位置: 首页 > 知识库问答 >
问题:

Python数据帧获取空值计数

柯锋
2023-03-14

我试图在数据帧中找到空值。虽然我回顾了Stackoverflow的以下文章,其中描述了确定空值的过程,但我很难对我的数据集执行相同的操作。

如何计算熊猫数据帧中列中的楠值

工作代码:

import pandas as pd
a = ['america','britain','brazil','','china','jamaica'] #I deliberately introduce a NULL value
a = pd.DataFrame(a)
a.isnull()

#Output: 
False
1  False
2  False
3  False
4  False
5  False

a.isnull().sum()
#Output
#0    0
#dtype: int64

我做错了什么?

共有3个答案

宗政卓
2023-03-14

其他帖子指出,'不是空值,因此不使用isnull方法计算。。。

…但是,'在解释为bool时,其计算结果确实为False

a.astype(bool)

       0
0   True
1   True
2   True
3  False
4   True
5   True

如果您的数据框中有"并希望以这种方式处理它,这可能会很有用。

逑翰翮
2023-03-14

列表中的'不是空值,而是空字符串。要获取空值,请改用Nonepandas.isnull()文档中描述了缺少的值是“数值数组中的NaN,[或]对象数组中的None/NaN”。

import pandas as pd
a = ['america','britain','brazil',None,'china','jamaica']
a = pd.DataFrame(a)
a.isnull()

       0
0  False
1  False
2  False
3   True
4  False
5  False

您可以通过打印这两个数据帧来查看差异。在第一种情况下,数据帧如下所示:

pd.DataFrame(['america','britain','brazil',None,'china','jamaica'])

         0
0  america
1  britain
2   brazil
3         
4    china
5  jamaica

请注意,索引3处的值是一个空字符串

在第二种情况下,您会得到:

pd.DataFrame(['america','britain','brazil',None,'china','jamaica'])

         0
0  america
1  britain
2   brazil
3     None
4    china
5  jamaica
舒俊雄
2023-03-14

如果希望'NoneNaN都计算为null,可以对强制为布尔值的数据帧中的每个值使用applymap方法,然后使用.sum

import pandas as pd
import numpy as np


a = ['america','britain','brazil',None,'', np.nan, 'china','jamaica'] #I deliberately introduce a NULL value
a = pd.DataFrame(a)
a.applymap(lambda x: not x or pd.isnull(x)).sum()

# 0    3
# dtype: int64

我希望这有帮助。

 类似资料:
  • 问题内容: 这是我的数据框df 我正在尝试从数据帧的每一行中获取最大值,我期望这样的输出 这就是我尝试过的 我没有得到正确的输出,任何帮助将不胜感激。谢谢 问题答案: 使用有: 如果需要新列:

  • 我正在使用: Python 3.6.8 火花2.4.4 我在spark类路径中有以下JAR: http://repo1.maven.org/maven2/com/databricks/spark-redshift_2.11/2.0.1/spark-redshift_2.11-2.0.1.jar http://repo1.maven.org/maven2/com/databricks/spark-a

  • 我有一个熊猫数据框,格式如下: df: 现在我想将其分为两列,如下所示: 输出: 我想得到每一行的计数,如下所示。预期产出: 如何获得我的预期输出?我想找出每个“col2”值的最大计数?

  • 我正在尝试合并两个数据帧: 第一个数据帧,,用INTEGERS/STRINGS填充 左边的数据框一起被整数/列表填充。 当我使用pandas函数时,新的数据框将用NaN填充右侧的数据框,而不是列表 我期望使用两个原始数据帧中的值创建一个新的合并数据帧。相反,在新的数据框中,“control”数据框中的所有值都是正确的,但“together”数据框中的所有列表都是正确的 以下是一些样本数据: 以下是

  • 问题内容: 我想获取基于条件选择的数据帧行数。我尝试了以下代码。 输出: 输出显示数据帧中每一列的计数。相反,我需要获得满足以上所有条件的单一计数?这该怎么做?如果您需要有关我的数据框的更多说明,请告诉我。 问题答案: 您要的是所有条件都为真的条件,所以答案是len,除非我误解了您的要求

  • 当我加载并运行下面的代码时,我会得到一个UnicodeDecodeError。如何解决这个问题? 我在我的文件夹中有一个CSV文件,但这种类型的错误即将出现,它不会显示输出中的头部列表。我使用Jupyter笔记本来运行代码以及编程。