gpt4 book ai didi

dataframe - 逐行计算pyspark数据帧中的空数

转载 作者:行者123 更新时间:2023-12-03 08:16:45 25 4
gpt4 key购买 nike

所以我想按行计算数据帧中的空值数量。

请注意,有50列以上,我知道我可以做一个case/when语句来做到这一点,但是我更喜欢一个更整洁的解决方案。

例如,一个子集:

columns = ['id', 'item1', 'item2', 'item3']
vals = [(1, 2, 0, None),(2, None, 1, None),(3,None,9, 1)]
df=spark.createDataFrame(vals,columns)
df.show()

+---+-----+-----+-----+
| id|item1|item2|item3|
+---+-----+-----+-----+
| 1| 2| 'A'| null|
| 2| null| 1| null|
| 3| null| 9| 'C'|
+---+-----+-----+-----+

运行代码后,所需的输出为:
+---+-----+-----+-----+--------+
| id|item1|item2|item3|numNulls|
+---+-----+-----+-----+--------+
| 1| 2| 'A'| null| 1|
| 2| null| 1| null| 2|
| 3| null| 9| 'C'| 1|
+---+-----+-----+-----+--------+

编辑:并非所有非null值都是int。

最佳答案

null转换为1,将其他转换为0,然后将sum转换为所有列:

df.withColumn('numNulls', sum(df[col].isNull().cast('int') for col in df.columns)).show()
+---+-----+-----+-----+--------+
| id|item1|item2|item3|numNulls|
+---+-----+-----+-----+--------+
| 1| 2| 0| null| 1|
| 2| null| 1| null| 2|
| 3| null| 9| 1| 1|
+---+-----+-----+-----+--------+

关于dataframe - 逐行计算pyspark数据帧中的空数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52864713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com