Это один из способов использования pd.DataFrame.apply
.Обратите внимание, что np.nan == np.nan
оценивается как False
, мы можем использовать этот прием в нашей функции, чтобы определить, когда применять логику удаления.
import pandas as pd, numpy as np
df = pd.DataFrame({'Main': ['Sri playnig well cricket', 'sri went out',
'Ram is in' ,'Ram went to UK,US'],
'substring': ['cricket', np.nan, np.nan, 'UK,US']})
def remover(row):
sub = row['substring']
if sub != sub:
return row['Main']
else:
lst = row['Main'].split()
return ' '.join([i for i in lst if i!=sub])
df['Main'] = df.apply(remover, axis=1)
print(df)
Main substring
0 Sri playnig well cricket
1 sri went out NaN
2 Ram is in NaN
3 Ram went to UK,US