python中怎样判断一个dataframe非空

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中怎样判断一个dataframe非空相关的知识,希望对你有一定的参考价值。

DataFrame有一个属性为empty,直接用DataFrame.empty判断就行。
例如,你的DataFrame为test_df,有
如果test_df为空,则 test_df.empty 返回 True,反之 返回False。
注意empty后面不要加()。
学习tips:查好你自己所用的Pandas对应的版本,在官网上下载Pandas 使用的pdf手册,直接搜索“empty”,就可找到有关上述问题的一些例子/解答。
参考技术A 方法:
a=DataFrame(data);
a.head(6)表示显示前6行数据,若head()中不带参数则会显示全部数据。
a.tail(6)表示显示后6行数据,若tail()中不带参数则也会显示全部数据。本回答被提问者采纳

计算Spark DataFrame中的非空值的数量

我有一个带有一些列的数据框,在进行分析之前,我想了解这样的数据帧是多么完整,所以我想过滤数据帧并为每列计算非空值的数量,可能返回数据帧回来了。

基本上,我试图获得与this question中表达的相同的结果,但使用Scala而不是Python ...

说你有:

val row = Row("x", "y", "z")
val df = sc.parallelize(Seq(row(0, 4, 3), row(None, 3, 4), row(None, None, 5))).toDF()

如何汇总每列的非空数并返回具有相同列数的数据帧,只返回一行的答案?

答案

虽然我喜欢Psidoms的答案,但我常常对空值的分数感兴趣,因为只有非空值的数量并不能说明多少......

你可以这样做:

import org.apache.spark.sql.functions.{sum,when, count}

df.agg(
   (sum(when($"x".isNotNull,0).otherwise(1))/count("*")).as("x : fraction null"),
   (sum(when($"y".isNotNull,0).otherwise(1))/count("*")).as("y : fraction null"),
   (sum(when($"z".isNotNull,0).otherwise(1))/count("*")).as("z : fraction null")
 ).show()

编辑:sum(when($"x".isNotNull,0).otherwise(1))也可以被count($"x")取代,sum只计算非空值。当我发现这不明显时,我倾向于使用更清晰的.describe()表示法

另一答案

一个直接的选择是使用df.describe().filter($"summary" === "count").show +-------+---+---+---+ |summary| x| y| z| +-------+---+---+---+ | count| 1| 2| 3| +-------+---+---+---+ 函数来获取数据框的摘要,其中count行包含非空值的计数:

import org.apache.spark.sql.functions._
import org.apache.spark.sql.types._

df.agg(
    count("x").divide(count(lit(1)))
        .as("x: percent non-null")
    // ...copy paste that for columns y and z
).head()
另一答案

这是我在Scala 2.11,Spark 2.3.1中的表现:

count(*)

count(1)计算非空行,lit(1).minus( count("x").divide(count(lit(1))) ) .as("x: percent null") 在每一行上运行。

如果您想要计算总体中的百分比null,请找到基于计数的等式的补码:

// cast null-ness to an integer
sum(col("x").isNull.cast(IntegerType))
    .divide(count(lit(1)))
    .as("x: percent null")

同样值得知道的是,您可以将null转换为整数,然后对其求和。 但它可能性能较差:

qazxswpoi

以上是关于python中怎样判断一个dataframe非空的主要内容,如果未能解决你的问题,请参考以下文章

计算Spark DataFrame中的非空值的数量

python中怎样在dataframe变量中增加一列

判断一个非空单链表是否是递增有序的

熊猫将非空值从行中获取到一个单元格中[重复]

sql中更新某个字段中部分空值的语句怎样写?

Scala DataFrame,将非空列的值复制到新列中