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

如何在pandas中显示类似空字符串的列值计数

逄烨
2023-03-14

dataframe.describe()对于类似字符串的列具有以下列:

count unique top freq first last

虽然这些肯定是有用的,但了解任何给定列中是否有空值以及有多少空值也是非常重要的。

虽然我可以求助于编写自定义函数来找到它,但这将是一个巨大的额外开销。请注意,有一个相关的问题,但主要关注数字列,因此不直接适用:如何计算DataFrame中列中的NaN值。那么,是否还有另一个助手函数可以提供这些附加信息呢?

共有3个答案

阎佑运
2023-03-14

下面提供了我在dataframe.describe()提供的信息中添加nulls列的初衷的完全实现。感谢@QuangHoang提到了构成这个答案一部分的dataframe.isna。

请注意,我们必须转置description()的输出。然后将Nulls预挂在转置的描述()输出中,并通过set_axis将列重命名为Nulls

df = pd.DataFrame({ 'a': [1,2,3], 'b': ['a','b','c'], 'c': [99.5,11.2, 433.1],
   'd':[123,'abc',None]})
desc = df.describe()  # Returns a DataFrame with stats in the row index
combo = pd.concat([df.isna().sum(),desc.T],axis=1)
          .set_axis(['Nulls']+list(desc.index),axis=1,inplace=False)
张和颂
2023-03-14

您可以尝试:dataframe.info()

如文档中所述,df.info()提供有关数据帧的信息,包括索引数据类型和列数据类型、非空值和内存使用情况。

根据您存储信息的要求,您可以尝试以下操作:

import io
buffer = io.StringIO()
df.info(buf=buffer)
s = buffer.getvalue()
with open("df_info.txt", "w", encoding="utf-8") as f:  
     f.write(s)

来源:df.info()文档

高弘光
2023-03-14

要快速浏览每列中的nan,请执行以下操作:

dataframe.isna().sum()
 类似资料:
  • 所以,我一直在用python处理pandas,我从外部系统中提取数据,每列末尾都有很多空格。我想到了在每个系列中使用一个str.strip()方法和一个代码: 它基本上完成了它的工作,但我注意到,当我检查使用数据帧的属性时,我遇到了一个问题,如果在一个值中只有没有任何文本的空格,那么它是空的,但它不会将标量转换为空: 但是,如果字符串为空,则检查条件: 我怎么可能将所有这些转换为空,以便我可以使用

  • 问题内容: 我想获取一列中字符串的频率计数。一方面,这类似于将数据框折叠为仅反映列中的字符串的一组行。我能够通过循环解决此问题,但知道有更好的解决方案。 df示例: 并想出去: 我搜索了很多论坛,但找不到合适的答案。 我假设使用pivot_table方法是正确的方法,但是无法获取正确的参数来折叠没有为输出df提供明显索引的表。 我可以通过使用value_counts()遍历每列并将每个值计数系列附

  • 本文向大家介绍MongoDB查询如何在字段值中搜索类似“@email”的字符串,包括了MongoDB查询如何在字段值中搜索类似“@email”的字符串的使用技巧和注意事项,需要的朋友参考一下 使用MongoDB find()搜索电子邮件字符串。让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是查询@email的查询,例如字符串- 这将产生以

  • 问题内容: 我想计算一个分组的pandas dataframe列中字符串的出现。 假设我有以下数据框: 首先,我想GROUP BY和。对于这些组中的每一个,我都希望计算该列中的出现次数。 结果应如下所示: 通过两列进行分组很容易: 但是接下来呢? 问题答案: 调用对象的“得分”列,并使用vectorise方法,使用此方法过滤和调用: 要将其分配为列使用,以便聚合返回其索引与原始df对齐的序列:

  • 我试图写一个快速的程序,在输入的字符串中计数空格的数量。这是我到目前为止所拥有的: while循环首先使用s.indexOf(“”)查找字符串s中的第一个空格,将其替换为char Z,然后将值SpaceCount加1。此过程重复,直到s.indexOf没有找到空白,导致i为-1,从而停止循环。 换句话说,每次找到空白时,SpaceCount都会增加1,然后向用户显示空白的总数。或者应该是... 问