Да, вы используете его неправильно, Series.replace()
по умолчанию не работает inplace, он возвращает замененный dataframe / series, вам нужно назначить его обратно на ваш файл данных / серии для его эффекта происходить. Или, если вам нужно сделать это на месте, вам нужно указать аргумент ключевого слова inplace
как True
. Пример -
data['sex'].replace(0, 'Female',inplace=True)
data['sex'].replace(1, 'Male',inplace=True)
. Кроме того, вы можете комбинировать приведенное выше в один вызов функции replace
используя list
для аргумента to_replace
, а также аргумент value
, Example -
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