从这个数据框 df
开始:
0 1 2
02 en it None
03 en None None
01 nl en fil
这里存在一些缺失的值。我正在尝试逐行应用替换函数,例如伪代码:
def replace(x):
if 'fil' and 'nl' in row:
x = ''
我知道我可以做这样的事情:
df.apply(f, axis=1)
假设有一个函数f
,定义如下:
def f(x):
if x[0] == 'nl' and x[2] == 'fil':
x[0] = ''
return x
获取:
0 1 2
02 en it None
03 en None None
01 en fil
但是在先验条件下,我不知道字符串在列中的实际位置,因此我必须使用类似于isin
方法的方式进行逐行搜索。
编辑:每个字符串都可以出现在列的任何位置。
en
值应该保留...)。 - Fabio Lamannadf.loc[df.apply(func, axis=1)] = df.replace('nl','')
。 - Fabio Lamannaapply
在处理大型数据框时速度会比较慢。 - Fabio Lamanna