如何替换DataFrame列中的空值? [英] How to replace empty values in a column of DataFrame?

查看:71
本文介绍了如何替换DataFrame列中的空值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何替换 DataFrame dfField1 列中的空值?

How can I replace empty values in a column Field1 of DataFrame df?

Field1 Field2
       AA
12     BB

此命令未提供预期结果:

This command does not provide an expected result:

df.na.fill("Field1",Seq("Anonymous"))

预期结果:

Field1          Field2
Anonymous       AA
12              BB

推荐答案

Fill: 返回一个新的 DataFrame 替换空值或 NaN 值带值的数字列.

Fill: Returns a new DataFrame that replaces null or NaN values in numeric columns with value.

两件事:

  1. 空字符串不是 null 或 NaN,因此您必须为此使用 case 语句.
  2. 将文本值赋予数字列时,Fill 似乎无法正常工作.

失败的空替换为填充/文本:

scala> a.show
+----+---+
|  f1| f2|
+----+---+
|null| AA|
|  12| BB|
+----+---+

scala> a.na.fill("Anonymous", Seq("f1")).show
+----+---+
|  f1| f2|
+----+---+
|null| AA|
|  12| BB|
+----+---+

工作示例 - 对所有数字使用 Null:

scala> a.show
+----+---+
|  f1| f2|
+----+---+
|null| AA|
|  12| BB|
+----+---+


scala> a.na.fill(1, Seq("f1")).show
+---+---+
| f1| f2|
+---+---+
|  1| AA|
| 12| BB|
+---+---+

失败示例(空字符串而不是 Null):

scala> b.show
+---+---+
| f1| f2|
+---+---+
|   | AA|
| 12| BB|
+---+---+


scala> b.na.fill(1, Seq("f1")).show
+---+---+
| f1| f2|
+---+---+
|   | AA|
| 12| BB|
+---+---+

Case Statement Fix 示例:

scala> b.show
+---+---+
| f1| f2|
+---+---+
|   | AA|
| 12| BB|
+---+---+


scala> b.select(when(col("f1") === "", "Anonymous").otherwise(col("f1")).as("f1"), col("f2")).show
+---------+---+
|       f1| f2|
+---------+---+
|Anonymous| AA|
|       12| BB|
+---------+---+

这篇关于如何替换DataFrame列中的空值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆