Python pandas replace不替换值,即使inplace=True
我的数据是这样的。如果Python pandas replace不替换值,即使inplace=True,python,pandas,Python,Pandas,我的数据是这样的。如果“没有子女”不是nan,我想用“已婚”替换婚姻状况“失踪” >cust_data_df[['marital_status','no_of_children']] > marital_status no_of_children 0 Married NaN 1 Married NaN 2 Missing 1 3 Missing 2 4 Single
“没有子女”
不是nan,我想用“已婚”
替换婚姻状况“失踪”
>cust_data_df[['marital_status','no_of_children']]
>
marital_status no_of_children
0 Married NaN
1 Married NaN
2 Missing 1
3 Missing 2
4 Single NaN
5 Single NaN
6 Married NaN
7 Single NaN
8 Married NaN
9 Married NaN
10 Single NaN
这就是我所尝试的:
cust_data_df.loc[cust_data_df['no_of_children'].notna()==True, 'marital_status'].replace({'Missing':'Married'},inplace=True)
但这并没有起任何作用。将替换后的值分配给avoid:
如果需要设置所有值:
cust_data_df.loc[m, 'marital_status'] = 'Married'
编辑:
感谢@Quickbeam2k1的解释:
cust_data_df.loc[cust_data_df['no_of_children'].notna()==True,'mutual_status']只是一个没有参考的新对象。在此处替换将保持原始对象不变
也许有更多的解释:cust_data_df.loc[cust_data_df['no_of_children'].notna()==True,'mutual_status']
只是一个没有参考的新对象。在此处替换将保持原始对象不变
cust_data_df.loc[m, 'marital_status'] = 'Married'