首页 > 解决方案 > 使用考拉对空值求和

问题描述

使用考拉时,对所有 Null / NaN 值的数据帧求和的好方法是什么?

或以另一种方式陈述

我如何按空值总数的列返回一个列表。如果可能,我试图避免将数据框转换为 spark 或 pandas。

注意:.sum()忽略考拉中的空值(skipna:boolean,默认 True - 不能更改为 False)。所以跑步df1.isnull().sum()是不可能的

numpy 被列为替代方案,但由于数据框位于考拉中,我观察到 .sum() 仍然省略了 nan 值。

免责声明:我知道我可以在 Spark 上运行 pandas,但我知道这会适得其反。我犹豫从 Spark 或 Pandas 数据帧中求和,然后将数据帧转换为考拉(我认为这又是浪费资源)。我正在使用一个包含 73 列和 4m 行的数据集。

标签: pythondataframeapache-sparkdata-sciencespark-koalas

解决方案


您实际上可以使用df.isnull(). 这样做的原因是它返回一个布尔值“数组”来指示是否缺少值。因此,如果您第一次调用isnull,然后sum您将得到正确的计数。

例子:

import databricks.koalas as ks

df = ks.DataFrame([
  [1, 3, 9],
  [2, 3, 7],
  [3, None, 3]
], ["c1", "c2", "c3"])

df.isnull().sum()

推荐阅读