Назначьте обратно замененные значения, чтобы избежать цепных назначений :
m = cust_data_df['no_of_children'].notna()
d = {'Missing':'Married'}
cust_data_df.loc[m, 'marital_status'] = cust_data_df.loc[m, 'marital_status'].replace(d)
При необходимости установите все значения:
cust_data_df.loc[m, 'marital_status'] = 'Married'
РЕДАКТИРОВАТЬ:
Спасибо @ Quickbeam2k1 за объяснение:
cust_data_df.loc [cust_data_df ['no_of_children']. Notna () == True, 'marital_status'] - это просто новый объект, который имеетнет ссылки.Замена там, оставит исходный объект без изменений