是的,你用错了Series.replace() http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.replace.html默认情况下不是就地操作,它返回替换的数据帧/系列,您需要将其分配回您的数据帧/系列才能发生效果。或者,如果您需要就地执行此操作,则需要指定inplace
关键字参数为True
例子 -
data['sex'].replace(0, 'Female',inplace=True)
data['sex'].replace(1, 'Male',inplace=True)
另外,您可以将以上内容合并为一个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]: data
Out[12]:
sex split
0 Male 0
1 Female 1
2 Male 0
3 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]: data
Out[17]:
sex split
0 Male 0
1 Female 1
2 Male 0
3 Female 1