我有一个pysparkDataframe,有多个列(大约320个)
我得找到关键词 baz
在col中 A
. 万一 baz
,然后替换列表中列出的所有列中的现有值 columns_for_replacement
没有
columns_for_replacement = ["B", "C", "D", "E", "F", "G", "H", "I"]
我正在尝试修改以下代码以执行相同的操作:
for i in columns_for_replacement:
df = df.withColumn(i,when((col(i)=='baz'),None).otherwise(col(i)))
上面的代码只适用于特定的列,这不是我的预期要求。
基本Dataframe:
A B C D E F G H I J
baz abc abc abc abc abc abc abc abc abc
baz abc abc abc abc abc abc abc abc abc
def abc abc abc abc abc abc abc abc abc
baz abc abc abc abc abc abc abc abc abc
map abc abc abc abc abc abc abc abc abc
baz abc abc abc abc abc abc abc abc abc
noo abc abc abc abc abc abc abc abc abc
预期Dataframe:
A B C D E F G H I J
baz abc
baz abc
def abc abc abc abc abc abc abc abc abc
baz abc
map abc abc abc abc abc abc abc abc abc
baz abc
noo abc abc abc abc abc abc abc abc abc
2条答案
按热度按时间gz5pxeao1#
我想你是想用这个专栏
A
在when条件中,而不是列中i
:另一种方法是做一个
select
:ocebsuys2#
您需要检查列
A
:或更通用,以避免选择要替换的列表中以外的每一列: