是的,您使用的是错误的,
Series.replace()默认情况下不是就地操作,它会返回替换的数据框/系列,您需要将其分配回数据框/系列以使其生效。或者,如果你需要就地做到这一点,你需要指定
inplace关键字参数的
True例子-
data['sex'].replace(0, 'Female',inplace=True)data['sex'].replace(1, 'Male',inplace=True)
另外,您也可以将上面的参数和arguments一起用于单个
replace函数调用中,示例-
list``to_replace``value
data['sex'].replace([0,1],['Female','Male'],inplace=True)
示例/演示-
In [10]: data = pd.Dataframe([[1,0],[0,1],[1,0],[0,1]], columns=["sex", "split"])In [11]: data['sex'].replace([0,1],['Female','Male'],inplace=True)In [12]: dataOut[12]: sex split0 Male 01 Female 12 Male 03 Female 1
您还可以使用字典,例如-
In [15]: data = pd.Dataframe([[1,0],[0,1],[1,0],[0,1]], columns=["sex", "split"])In [16]: data['sex'].replace({0:'Female',1:'Male'},inplace=True)In [17]: dataOut[17]: sex split0 Male 01 Female 12 Male 03 Female 1


